c语言 求出亲密数对

c语言 求出亲密数对,第1张

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

用除号是不行的,呵呵。

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

求因子和的函数如下:

int sumf(int num)

{

    int i,sum = 0

    for(i = 1i <= 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 = 2i < num i ++)

    {

         if(num % i == 0)

         {

              sum += i 

  渗稿橘       }   

    }

    return sum

}

#include<尺世stdio.h>陵盯肢则逗

int main()

{

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

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

{

b=factor(a)

if(b>a&&factor(b)==a)

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

}

return 0

}

int factor(int x)

{

int i,sum=0

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

if(x%i==0)

sum=sum+i

return (sum)

}

亲密数对:两正整数a、b,若a的厅首所有包含1但不包含自身的因子和等于b,b的所有包含谨州1但不包含自身的因祥伏蔽子和又等于a,则称a、b为一对亲密数或一亲密数对。

具体代码如下:

#include

int

fun(int

n)

{

int

i,sum

sum=1

for(i=2i<=n/2i++)

if

(n%i==0)

sum+=i

return

sum

}void

main()

{

int

a,b,c

for

(a=2a<=1000a++)

{

b=fun(a)

c=fun(b)

if

(c==a)

printf("%5d%5d\n",a,b)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12500897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存