搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 【求助】求3000以内的亲密数
标题:
【求助】求3000以内的亲密数
只看楼主
aa610182505
等 级:
新手上路
帖 子:1
专家分:0
注 册:2009-10-29
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:3
【求助】求3000以内的亲密数
编程求3000以内的亲密数。整数a和整数b称为亲密数的条件为:整数a的全部因子(包括1,不包括a本身)之和等于b,且整数b的全部因子(包括1,不包括b本身)之和等于a。
搜索更多相关主题的帖子:
亲密
2009-10-29 21:48
m456m654
等 级:
小飞侠
威 望:
3
帖 子:783
专家分:2806
注 册:2009-9-17
第
2
楼
得分:10
#include <stdio.h>
main(void)
{
int fun(int a);
int i,j,k=0;
for(i=2;i<3000;i++)
for(j=2;j<3000;j++)
{
if(i!=j)
{
if(fun(i)==j&&fun(j)==i)
{
printf("%d,%d ",i,j);
k++;
}
if(k%10==0)
printf("\n");
}
}
}
int fun(int x)
{
int sum=0;
int i;
for(i=1;i<x;i++)
if(x%i==0)
sum+=i;
return(sum);
}
2009-10-29 22:15
剑木易
等 级:
论坛游民
帖 子:18
专家分:50
注 册:2009-10-28
第
3
楼
得分:10
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{ int i,j,k;
int f(int a);
for(i=2;i<3000;i++)
if(i==f(f(i)))printf("%d,%d\n",i,f(i));
getch();
}
int f(int a)
{int i,sum=0;
for(i=2;i<a;i++)
if(a%i==0) sum=sum+i;
return sum;
}
2009-10-29 22:37
m456m654
等 级:
小飞侠
威 望:
3
帖 子:783
专家分:2806
注 册:2009-9-17
第
4
楼
得分:0
if(i==f(f(i)))
这一步写的不错
2009-10-29 22:39
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-290423-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.254738 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved