C语言,找出1~10000内的完数?

如题所述

#include <stdio.h>
int main()
{
int i, j, s;
for(i = 2; i<=10000; i ++)
{
s = 0;
for(j = 1; j < i; j ++)
{
if(i%j == 0) s += j;
}
if(s == i) printf("%d\n", i);
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-13
#include<stdio.h>
void process(int n)
{
int a[100]={1},i,j=1,sum=0;
for(i=2;i<=n/2;i++)
{if(n%i==0) {a[j]=i;j++;}}
for(i=0;i<j;i++)
sum+=a[i];
if(sum==n)
{
printf("%d its factors are ",n);
for(i=0;i<j;i++)
{
printf("%d",a[i]);
if(i<j-1) printf(" ");
}
printf("\n");
}
}
int main()
{
int i;
for(i=6;i<10000;i+=8)
{
process(i);
i+=2;
process(i);
}
return 0;
}
第2个回答  2018-04-05
#include <stdio.h>
int main()
{
int i, j, s,k;
k = 1;
for(i = 2; i<=10000; i ++)
{
s = 0;
for(j = 1; j < i; j ++)
{
if(i%j == 0) 
s = s + j;

}
if(s==i)
{
printf("%d its factors are ",s);
for(j = 1; j < i; j ++)
{
if(i%j == 0) 
{
if(j<i/2)
printf("%d,",j);
else
printf("%d",j);
}
}
printf("\n");
}
}
return 0;
}

C语言,找出1~10000内的完数?
int main(){ int i, j, s;for(i = 2; i<=10000; i ++){ s = 0;for(j = 1; j < i; j ++){ if(i%j == 0) s += j;} if(s == i) printf("%d\\n", i);} return 0;}

C语言编程:求1-10000之间的完全数
\/\/求完全数 #include<stdio.h>int sum1(int n){int s=1,i; for(i=2;i<=n\/2;i++) if(n%i==0)s+=i; return s; }int main(){ int i,j; for(i=2;i<10000;i++) if(sum1(i)==i) {printf("%d=1",i); for(j=2;j<=i\/2;j++) if(i%j==0...

c语言10000以内完数的个数
define N 1000 \/\/完数求解范围 main(){ int i,j,sum; \/\/sum用来存放因子之和 for(i=1;i<N;i++) \/\/对1到1000以内的数依次尝试 { sum=0; \/\/给sum赋值,同时也是对上一次的值清空 for(j=1;j<=i\/2;j++) \/\/查找因子 { if(i%j==0) \/\/ 如果是因子 { sum+=j; \/\/把当前的...

C语言编程:输出10000以内所有的完数?
函数的内部,一开始,定义一个结构变量,并对它的s和c初始化为0,然后,进行一个用于查找各因数的循环,找到一个,就将它累加到和值变量s,然后将这个因数存储到结构的ys数组的c元素中,接着对c进行加一操作,函数体最后,返回定以被赋值了的结构变量。。。接下来就是在主函数main中,调用该函数,...

用c语言编写一个求一万以内的全部完数的程序
include<stdio.h> int main(){ int i,j,n=10000,r;for(i=1;i<n;i++){ r=0;for(j=1;j

c#编写输出1到10000既是质数又是完数的所有数。
质数不可能同时是完数,10000以内的完数只有6,28,496,8128这几个,你这道题肯定出错了,要么就是你打错了。质数:ArrayList primeNum = new ArrayList();for (int i = 3; i <= 10000; i++){ bool flag = false;for (int j = 2; j <= Math.Sqrt(i); j++){ if (i % j == 0...

我用c语言写了一个题目,就是求1到10000以内的完数个数和,不知道代码哪...
在两个for之间加一句sum=0;。

编程输出2到10000之间的所有完数.所谓完数是指因子之和与它本身相等的...
\/\/编程找出1000以内的所有完数:include <stdio.h> void main(){ int x, i, sum;x = 1;while(x <= 1000) { \/\/x要从1到1000循环.sum = 0; \/\/每算一个新的x时,sum要清0 for(i = 1; i < x; i++) if(x % i == 0) sum += i; \/\/如果i是x的因子,sum加...

C语言求助 求1-1000 完数
include <stdio.h> void main(){int i,n,t;for(n=2;n<=1000;n++){t=1;for(i=2;i<n;i++){if(n%i==0)t=t+i;}if(t==n)printf("%d\\n",n);}}算了,就不说什么了。

求10000以内的完全数 #include<stdio.h> void main() { int a,b,n...
include<stdio.h> int main(int argc,char ** argv){ int a,b,n;for(n=1;n<=10000;n++){ b = 0;for(a=1;a<n;a++){ if(n%a==0)b+=a;} if(b == n)printf("%d\\t",n);} return 0;} 对比一下,看差别在哪 ...

相似回答