<stdio.h>
#include
<散宏conio.h>
int
facsum(int
n)
{
int
sum=0
for
(int
i=1i<ni++)
{
if(n%i==0)
sum+=i
}
return
sum
}
main()
{
for
(int
i=1i<=500i++)
{
int
M1=facsum(i)
if
(facsum(M1)==i&&i<=M1)
{
printf("%d和%d互为亲密数\n",i,M1)
}
}
}
可以吗?输出要有文字说明,你冲念册可以自己改printf("%d和%d互为亲密数\n"高大,i,M1)这句话就行了。
#include<stdio.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=1a<500a++) /*穷举500以内的全部整数*/
{
n=facsum(n,&a,&b)
if(n==a&&a<=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=1i<=*a/2i++) /*计算数a的各因子,各因子锋滚锋之和存放于b*/
if(!(*a%i))
*b+=i/*计算b的各因子,各因子之和存于n*/
for(n=0,i=1i<备升=*b/2i++)
if(!(*b%i))
n+=i
return n
}
呵呵,楼主,你还是多看看函数的用法吧,先理清逻辑银晌。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)