c语言编程 计算1000以内的完全数,每8个数字一行。

如果一个数恰好等于它的因子之和,则称该数为“完全数“

#include <stdio.h>
int main()
{
int x,k,f=0,n;
for(x=2;x<=1000;x++)
{
n=0;//注意每次循环n都要为0
for(k=1;k<x;k++)//注意k要从1开始
if(x%k==0)
n=n+k;
if(n==x)
{
printf("%d ",x);
f++;
if(f%8==0)
printf("\n");
}
}
}
//其实1到1000内只有6 28 496这三个
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-28
#include <stdio.h>
#include <math.h>
int main(void)
{int x,k,flag,n=0; /*n用来控制每行输出8个数*/
for(x=2;x<=1000;x++)
{flag=1;
for(k=2;k<=sqrt(x);k++)
if(x%k==0) {flag=0; break;}
if(flag==1)
{if(n%8==0) printf("\n"); /*8个数一行*/
n++;
printf("%5d",x);
}
}
getchar();
}
第2个回答  2013-04-28
//输出0~10000内所有完数及其因子//
#include<stdio.h>
void main()
{
int i,j,t,s,k;
for(i=1;i<=10000;i++)
{
t=i;
s=0;//保证每次循环开始时s的值都是0//
for(j=1;j<t;j++)
{
if(t%j==0)
{
s=s+j;
}
}
if(s==i)
{
printf("%d its factors are ",i);
printf("1");
for(k=2;k<s;k++)
{
if(s%k==0)
{
printf(",%d",k);
}

}
printf("\n");
}
}
}
第3个回答  2013-04-29
1000以内的完全数只有6、28、496三个,“每8个数字一行”是什么意思?
相似回答