C语言 求1000以内的完数 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3 C语言题目:一个数如果恰好等于它的因子之和,这个数就称为“完...

C\u8bed\u8a00\uff1a\u4e00\u4e2a\u6570\u5982\u679c\u6070\u597d\u7b49\u4e8e\u5b83\u7684\u6240\u6709\u56e0\u5b50\u4e4b\u548c\uff0c\u8fd9\u4e2a\u6570\u5c31\u79f0\u4e3a\u201c\u5b8c\u6570\u201d\u3002\u7f16\u5199\u7a0b\u5e8f\u627e\u51fa1000\u4e4b\u5185\u7684\u6240\u6709\u5b8c\u6570

\u6e90\u4ee3\u7801\u5982\u4e0b\uff1a
#include
main()
{
int i,j;
int sum;
for(i=1;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
{
printf("%d its factors are ",i);
for(j=1;j<i;j++)
if(i%j==0)
printf("%d ",j);
}
printf("\n");
}

\u6269\u5c55\u8d44\u6599
1\u3001\u5b8c\u5168\u6570\u662f\u4e00\u4e9b\u7279\u6b8a\u7684\u81ea\u7136\u6570\uff0c\u5b83\u6240\u6709\u7684\u771f\u56e0\u5b50\u5373\u9664\u4e86\u81ea\u8eab\u4ee5\u5916\u7684\u7ea6\u6570\u7684\u548c\u5373\u56e0\u5b50\u51fd\u6570\uff0c\u6070\u597d\u7b49\u4e8e\u5b83\u672c\u8eab\u3002 2\u3001\u7b2c\u4e00\u4e2a\u5b8c\u5168\u6570\u662f6\uff0c\u5b83\u6709\u7ea6\u65701\u30012\u30013\u30016\uff0c\u9664\u53bb\u5b83\u672c\u8eab6\u5916\uff0c\u5176\u4f593\u4e2a\u6570\u76f8\u52a0\uff0c1\uff0b2\uff0b3\uff1d6\u3002\u7b2c\u4e8c\u4e2a\u5b8c\u5168\u6570\u662f28\u3002
3\u3001\u6709\u7ea6\u65701\u30012\u30014\u30017\u300114\u300128\uff0c\u9664\u53bb\u5b83\u672c\u8eab28\u5916\uff0c\u5176\u4f595\u4e2a\u6570\u76f8\u52a0\uff0c1\uff0b2\uff0b4 + 7 + 14\uff1d28\u3002\u540e\u9762\u7684\u6570\u662f496\u30018128\u3002

#include
#include

void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //\u4ece1\u5f00\u59cb\u52301000\u5faa\u73af\u7ed3\u675f
{
s=0;//\u521d\u59cb\u5316\u56e0\u5b50\u4e4b\u548cs\u4e3a0

for(i=1;i<m;i++) //\u5bfb\u627e\u57281\u5230m\u4e4b\u95f4\uff0c\u6709\u591a\u5c11m\u7684\u56e0\u5b50
if(m%i==0) //\u5982\u679cm\u80fd\u6574\u9664i\uff0c\u5219i\u4e3am\u7684\u56e0\u5b50
s=s+i;//\u5c06\u56e0\u5b50\u7d2f\u52a0

if(s==m) //\u5982\u679c\u56e0\u5b50\u4e4b\u548c\u7b49\u4e8e\u8fd9\u4e2a\u6570
printf("%d\t",s);//\u8f93\u51fa
}

getch();
}

\u8fd0\u884c\u7ed3\u679c\uff1a
6 28 496

#include<stdio.h>

int main()

int i,j,sum=1;

int b[100];

for(i=3;i<=1000;i++)

sum=1;

int k=0;

for(j=2;j<i;j++)

if( i%j==0) {sum+=j;b[k++]=j;}

if(i==sum)

{

printf("%d its factors are %d",i,b[0]);

for(int a=1;a<k; a++)

printf(",%d",b[a]);

printf("
");

}

}

扩展资料:

c语言需要说明的是:

1.一个C语言源程序可以由一个或多个源文件组成。 

2.每个源文件可由一个或多个函数组成。

3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。  

4.源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。

6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-c语言



public class five{

public static void main(String[]args){

int sum;

for(int i=1;i&lt;=1000;i++){

sum=0;

for(int j=1;j&lt;i;j++){

if(i%j==0){

sum=sum+j;

}

}

if(i==sum){

System.out.println(i);

}

}

}

}

运行结果:

扩展资料:

class定义和用法

class属性规定元素的类名(classname)。

class属性大多数时候用于指向样式表中的类(class)。不过,也可以利用它通过JavaScript来改变带有指定class的HTML元素。

提示和注释

注释:class属性不能在以下HTML元素中使用:base,head,html,meta,param,script,style以及title。

提示:可以给HTML元素赋予多个class,例如:&lt;span class="left_menu important"&gt;。这么做可以把若干个CSS类合并到一个HTML元素。

提示:类名不能以数字开头!只有Internet Explorer支持这种做法。



这是修改后的C程序:

#include <stdio.h>

void main()
{
int a,n,num,i;
for(n=1;n<=1000;n++)
{
a=n;
for(i=1;i<=n && a>0;i++)
{
if(n%i == 0)
a -= i;
}
if (a==0)
printf("%d ",n);
}
}

输出结果:
1 6 24 28 496

没太理解你的想法
while (n%i==0)
{
a-=i;
n/=i;
}
这段的意思是判断出来一个数是它的因子然后就把它除掉么?
那么这有两个问题
1.应该用if而不是while,否则会陷入死循环,一直在除1
2.这个想法本身貌似就有点儿问题,比如说18,它的因子包括1,2,3,6,9,但是如果你先除掉2在后面的判断中6就不是因子了,因子之间也有因子的关系

建议用更朴素的算法
for(i=1;i<n;i++)
{
if (n%i==0)
a-=i;
}
if (a==0)
printf("%d ",num);

如果你的想法不是这样的话还请多多指出我的错误啊~祝你成功~

因为只需要输出完数的因子,所以如果在判断过程中保存因子,会存在极多不必要的操作;所以此处选用了在得到完数后再计算一次其因子的方式。

/*
完数:一个数的因子之和等于该数
*/
#include <stdio.h>
#include <string.h>
void main()
{
int i,j,sum=1;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j<i;j++)
{
if( i%j==0)
sum+=j;
}
if(i==sum)
{
printf("%3d, 因子为:",i);
for( j=2; j<i; j++ )
{
if( i%j == 0 )
printf("%3d,", j );
}
printf("\n");
}
}
}

扩展阅读:编程求1000以内的完数 ... 一千以内的完美数 ... c#求100以内的素数 ... c语言1000以内自守数 ... c语言编写100以内素数 ... c#求1到100的素数 ... c语言求1-100素数 ... 素数判断1-100c语言程序 ... 用c#编写100以内的素数 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网