题目是求1到1000的完数,完数是一个数的平方等于他因子的和。如6的因子是1,2,3,6=1+2+3,所以6是完数
编程序如下:
#include<stdio.h>
void main()
{
int a,b,i,s=0;
for(a=2;a<=1000;a++)
{
for(i=1;i<a;i++)
{
b=a%i;
if(b==0) s=s+i;
}
if(s==a)
{printf("%d its factors are",a);
for(i=1;i<a;i++)
if(b==0) printf("%d ",i);
printf("\n");
}
}
}
----------------解决方案--------------------------------------------------------
你说完数是一个数的平方等于他因子的和,
那又为为什么又举例说如6的因子是1,2,3,6=1+2+3,呢?
我想是因为你输错了吧?
今天没时间做了!
明天给你答案吧!
----------------解决方案--------------------------------------------------------
说错了,是一个数等于他的因子和
----------------解决方案--------------------------------------------------------
//题目是求1到1000的完数,完数是一个数等于他因子的和。如6的因子是1,2,3,6=1+2+3,所以6是完数
//编程序如下:
#include<stdio.h>
#include<math.h>
void main()
{
int a,i,s=0;
for(a=2;a<=1000;a++)
{
for(i=1;i<a;i++)
{
if(a%i==0)
s=s+i;
}
if(s==a)
{
printf("%d its factors are",a);
for(i=1;i<a;i++)
if(a%i==0) printf("%d ",i);
printf("\n");
}
}
}
----------------解决方案--------------------------------------------------------
你这不是和我的一样吗,多了一个math.h头文件
这个没有也没关系的,为什么要加个呢
我也试过,这个程序也不行啊,…………
----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
int a,b,i,s=0;
for(a=2;a<=1000;a++)
{
for(i=1;i<a;i++)
{
b=a%i;
if(b==0) s=s+i;
}
if(s==a)
{printf("%d\n",a);
}
else s=0;
}
getch();/*用WINTC的时候加上去就可以否则就不用*/
}
----------------解决方案--------------------------------------------------------
void main()
{
int a,i,s;
for(a=2;a<=1000;a++)
{ s=0;
for(i=1;i<a;i++)
if(a%i==0) s=s+i;
{printf("%d its factors are",a);
for(i=1;i<a;i++)
if(a%i==0) printf("%d ",i);
printf("\n");
}
}
getch();
}
如上...
[此贴子已经被作者于2006-4-8 21:50:16编辑过]
----------------解决方案--------------------------------------------------------
好啊,不错的网站,顶
----------------解决方案--------------------------------------------------------