69,373
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
//如果使用CPP,则使用以下头文件和作用域
//#include <iostream>
//using namespace std;
void main()
{
int range;
int sum;
int k,j;
printf("请输入您想要的完全数的范围:\n");
scanf("%d",&range);
for(k=2;k<=range;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf("%d ",k);
}
}
#include <stdio.h>
main ( )
{
int sum=0;
int i,j;
for(i=1;i<=1000;i++)
{
sum = 0;//sum应该在循环内初始化。。
for(j=1;j<i;j++)//这里是<不是<=。。
{
if( i%j==0)
sum=sum+j;
}
if(i==sum)
printf("%d\n",i);
}
}
#include <stdio.h>
main ( )
{
int sum=0;
int i,j;
for(i=1;i<=1000;i++)
{
for(j=1;j<=i;j++)
{ if( i%j==0)
sum=sum+j;
}
if(i==sum)
printf("%d\n",i);
}
}
代码应该这样贴出来main ( )
{
int sum=0;
int i,j;
for(i=1;i<=1000;i++)
{
sum=0;//每次运行sum要归0
for(j=1;j<=i;j++)
{ if( i%j==0)
sum=sum+j;
}
if(i==sum)
printf("%d\n",i);
}
}
#include <stdio.h>
#include <math.h>
int main (void)
{
int sum = 0;
int i, j;
for(i = 2; i <= 1000; i++)
{
sum = 0; //sum应该在循环内初始化。。
for(j = 1; j <= i/2; j++)//这里提高效率
{
if( i%j == 0)
sum = sum + j;
}
if(i == sum)
printf("%d\n",i);
}
return 0;
}
提高一下效率