亲密数对c语言调用函数 求亲密对数C++程序设计

c语言求亲密数对,

逻辑有错,改成如下则可——

创新互联建站主营任城网站建设的网络公司,主营网站建设方案,APP应用开发,任城h5成都微信小程序搭建,任城网站营销推广欢迎任城等地区企业咨询

int main(void){

int i,j,q,s1,s2;

for(i=2;i=1000;i++){

for(s1=1,q=i/2,j=2;j=q;j++)

if(i%j==0) s1+=j;

for(s2=1,q=s1/2,j=2;j=q;j++)

if(s1%j==0) s2+=j;

if(i==s2  i!=s1)

printf("%5d%5d\n",i,s1);

return 0;

}

C语言求亲密数 函数方法

#includestdio.h

int main()

{

int a,b,n;

int facsum(int n,int *a,int *b);

printf("There are following friendly--numbers pair smaller than 500:\n");

for(a=1;a500;a++) /*穷举500以内的全部整数*/

{

n=facsum(n,a,b);

if(n==aa=b)

printf("%4dand%d\n",a,b); /*若n=a,则a和b是一对亲密数,输出*/

}

}

int facsum(int n,int *a,int *b)

{

int i;

for(*b=0,i=1;i=*a/2;i++) /*计算数a的各因子,各因子之和存放于b*/

if(!(*a%i))

*b+=i; /*计算b的各因子,各因子之和存于n*/

for(n=0,i=1;i=*b/2;i++)

if(!(*b%i))

n+=i;

return n;

}

呵呵,楼主,你还是多看看函数的用法吧,先理清逻辑。

c语言求亲密对数

#includestdio.h

int main()

{

int factor(int x),a,b,i;

for(a=1;a=2000;a++)

{

b=factor(a);

if(bafactor(b)==a)

printf("%d--%d\n",a,b);

}

return 0;

}

int factor(int x)

{

int i,sum=0;

for(i=1;i=x/2;i++)

if(x%i==0)

sum=sum+i;

return (sum);

}

c语言编程题 编写程序,求500以内的所有亲密数对。

#include stdio.h

#define N 500

int result[N];

/* calculate one number */

int facsum(int n)

{

int sum = 0, i;

for (i = 1; i = n; i++) {if (n % i == 0) sum += i;}

return sum;

}

int swap (int begin, int end)

{

int temp;

temp = begin; begin = end; end = temp;

return 0;

}

int main()

{

int i, j ;

for (i = 0; i N; i++){

result[i] = facsum(i+1);

}

for (i = 1; i N; i++){

for (j = N; j i; j--){

if (result[j-1] result[j]) swap(j-1, j);

}

}

for (i = 0; i N; i++)

printf("%d\n", result[i]);

/* 上面是有序的因子之和 , 下面开始判断是不是亲密对数 */

for (i = 1; i = 20; i++){

if (facsum(facsum(i)) == i)

printf("%d and %d is inimite num!\n", i, facsum(i));

}

return 0;

}

c语言 求出亲密数对

大概看了一下,你判断是否为因子的地方有问题,应该用取余运算符号:%

用除号是不行的,呵呵。

另外,你把求一个数的因子和,写成一个函数,这样的话,程序看起来更明了,你也不容易混乱。

求因子和的函数如下:

int sumf(int num)

{

int i,sum = 0;

for(i = 1;i = num; i ++)

{

if(num % i == 0)

{

sum += i; 

}   

}

return sum;

}

不过你所说的因子是否包含了1和数本身?如果包含的话,我运行了一下,2到1000好像没发现有满足条件的。

如果不包含1和本身,倒是有几个,全程序是这样:

#include stdio.h

#include stdlib.h

int main(void)

{   int i; 

for(i = 2; i  1000; i++)

{      

//printf("%d--%d--%d\n",i,sumf(i),sumf(sumf(i)));

if(i == sumf(sumf(i)))

{

printf("%d    %d\n",i,sumf(i));

}    

system("pause");

return 0;

}

int sumf(int num)

{

int i,sum = 0;

for(i = 2;i  num; i ++)

{

if(num % i == 0)

{

sum += i; 

}   

}

return sum;

}


分享题目:亲密数对c语言调用函数 求亲密对数C++程序设计
本文URL:http://hbruida.cn/article/hgdscj.html