c语言用函数求亲密数 编程求亲密数

C语言 求亲密数 问题 。大神请进!while(ia)
{
i=i 1;
这样当i=a-1时,会进入循环 , 然后i加1,变成了a,并参与了运算 , 因此会得出错误结果 。
将以上代码改为:(注意,第二个也要改)
while(ia)
{
//i=i 1;
应该就正确了 。
大学c语言求亲密数 。程序如下 , 为什么打印出来的是从1到100000 。望大佬指教 。看了你的问题我去看的亲密数:
亲密数是成对的,两者互为亲密数 。
你的程序错误:
int QMS(n)
{
int n; 这两句,QMS的参数为n,n居然没有类型?既然参数传进了变量n,为什么下面又定义了一个局部变量 int n?
修改此句如下: int QWS(int n)删除函数内的int n;这句 。
程序如下(百度百科的例子)
#includestdio.h
int main()
{
int a,i,b,n;
printf("There are following friendly--numbers pair smaller than 3000:\n");
for(a=1;a3000;a) /*穷举3000以内的全部整数*/
{
for(b=0,i=1;i=a/2;i) {
if(!(a%i))b =i;
for(n=0,i=1;i=b/2;i){
if(!(b%i))n =i;
if(n==aab)
printf("M..M ",a,b);
}
}
}
*运行结果
There are following friendly--numbers pair smaller than 3000:
220.. 284 1184.. 1210 2620.. 2924
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语言求亲密数 函数方法#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("Mand%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
#define N 3000Yzh();
void main()
{
/*int a; scanf("%d",a); printf("%d",Yzh(a));*/
int a,b,i,j;
for(i=2;iN;i)
{
a = Yzh(i);
for(j=2;jN;j)
{
b = Yzh(j);
if(a==jb==iij)//因为要小的数在前面所以应该是小于
【c语言用函数求亲密数 编程求亲密数】printf("(%d,%d)",i,j);
}
}
}
int Yzh(int x)
{
int n,sum=0;
for(n=1;n=x/2;n)
{
if(x%n==0)
sum =n;
}
return sum;//因为你在主函数中会用到因子的和这个值c语言用函数求亲密数,所以你必须要把调用函数的值返回给主函数
}
这是我修改的你的代码c语言用函数求亲密数,输出符合你的要求c语言用函数求亲密数 , 不过3000以内的亲密数好像只有3对
c语言 求出亲密数对大概看c语言用函数求亲密数了一下,你判断是否为因子的地方有问题,应该用取余运算符号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; i1000; 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;inum; i)
{
if(num % i == 0)
{
sum= i;
}
}
return sum;
}
c语言用函数求亲密数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于编程求亲密数、c语言用函数求亲密数的信息别忘了在本站进行查找喔 。

    推荐阅读