public class five{
public static void main(String[]args){
int sum;
for(int i=1;i<=1000;i++){
sum=0;
for(int j=1;j<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,例如:<span class="left_menu important">。这么做可以把若干个CSS类合并到一个HTML元素。
提示:类名不能以数字开头!只有Internet Explorer支持这种做法。
#include
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
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 printf(",%d",b[a]); printf("\n"); } } } 扩展资料: c语言需要说明的是: 1.一个C语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。 4.源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。 5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。 参考资料: 百度百科-c语言
可以参考下面的代码:
include
using namespace std;
int main() {
for (int i = 2; i <= 1000; i++) {//从2到1000的数
int sum = 0;//因子总和
for (int j = 1; (j * j) <= i; j++) {//j做除数,√n复杂度,减少一半的计算量
if (i % j == 0) {//可以整除,为其因子
sum = j + (i / j) + sum;//因子之和
}
}
if ((sum - i) == i) cout << "1000以内的完数:" << i << endl;//因子之和减去其本身(1*i也为其因子)如果等于这个数本身,则为完数
}
}
扩展资料:
在梅森素数的基础研究方面,法国数学家鲁卡斯和美国数学家雷默都做出了重要贡献;以他们命名的“鲁卡斯-雷默方法”是目前已知的检测梅森素数素性的最佳方法。另外,中国数学家、语言学家周海中给出了梅森素数分布的精确表达式;这一研究成果被国际上命名为“周氏猜测”。
需要指出的是,完全数其实目前并不“完全”,它还有一些谜团尚未解决。例如:完全数是有限还是无穷多个,存在不存在奇完全数,这是当今数论领域的两大著名难题。这些难题与其它科学难题一样,有待人们去攻克。正如德国数论专家西格尔所言:“待到它们被完全破解时,完全数才算是真正的完全数。”
参考资料来源:百度百科-c语言
sum值 在每次进循环的时候 重新初始化一次 不然累加起来就出错了
#include
void main()
{
int num,sum=0,m;
printf("1\t");
for(num=2;num<=1000;num++)//控制num一直到1000
{
sum = 0;//加一句这个。
for(m=1;m{
if(num%m==0)
{
sum=sum+m;//num因子之和
}
}
if(sum==num)//判断num是否为完数
{
printf("%d\t",num);
}
}
}
试试吧
因为只需要输出完数的因子,所以如果在判断过程中保存因子,会存在极多不必要的操作;所以此处选用了在得到完数后再计算一次其因子的方式。
/*
完数:一个数的因子之和等于该数
*/
#include
#include
void main()
{
int i,j,sum=1;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j {
if( i%j==0)
sum+=j;
}
if(i==sum)
{
printf("%3d, 因子为:",i);
for( j=2; j {
if( i%j == 0 )
printf("%3d,", j );
}
printf("\n");
}
}
}