① 如何用 C/C++ 求 1 到 1000 内的所有完全数
用 C/C++求1到1000内的所有完全数:
voidWS(int);
voidmain();
intn;
for(n=1;n<=1000;n++);
WS(n);
voidWS(intm);
{inti,sum=0;
for(i=1;i<m;i++);
if(m%i==0);
sum=sum+i;
if(sum==m);
printf(" 完数为%d=",m);
intj;
for(j=1;j<m;j++);
if(m%j==0);
printf("%d",j)。
定义
如果一个数恰好等于它的真因子之和,则称该数为“完全数”。各个小于它的约数的和等于它本身的自然数叫做完全数,又称完美数或完备数。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
② 用c语言求1000以内的完数
完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义 可以得出判断完数的函数如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
根据该函数,只需要对需要打印的范围内1 ~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
完整代码如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}
③ c语言求2~1000之间的所有完数
#include "stdio.h"
int perfectNumber(int n)
{
int i;
for(i=2;i<1001;i++)
{
if((i%n)==0)
{
printf("%d\n",i);
}
}
}
int main()
{
int a;
printf("input an number:\n");
scanf("%d",&a);
perfectNumber(a);
}
④ 用C语言编程找出1000以内的所有完数。(涉及知识点:for语句和if语句)。
一个数,所有的真因子(即除了自身以外的约数)的和,恰好等于本身,称为完数。
所以,要确认是否为完数,只要把所有真因子相加判断即可。
于是,这个题目的编程思路为:
1 遍历1~1000;
2 对每个数,判断是否为完数,如是,则输出;
3 程序结束。
代码如下:
#include<stdio.h>
intmain()
{
intn,i,s;
for(n=1;n<=1000;n++)
{
s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;//是真因子,累加。
if(s==n)//是完数。
printf("%d,",n);//输出。
}
return0;
}
⑤ 如何用C语言打印1000以内的完数
// 本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数
#include"stdio.h"
main()
{
int i,j,s,sum;
printf("完数:\n") ;
sum=0;
for(i=2;i<=1000;i++)
{ s=0; ;//此处s=0一定要加,因为前几次循环的时候s的值已经改变 。清零
for(j=1;j<i;j++)
{
if(i%j==0)//这一块是如果能够整除,那么就是该数的因子,我们累加起来
{s+=j;
}
}
if(s==i) //因子的和与原数比较,如果正确就输出
{printf("%d\n",i);
sum++;
}
}
printf("完数的个数:%d\n",sum);
}
⑥ C语言编程,找出1000内的所有完数。
完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
根据该定义 可以得出判断完数的函数如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
根据该函数,只需要对需要打印的范围内1 ~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
完整代码如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//统计所有真因子的和。
if(s == n) return 1;//如果与原值相等,则该数为完数。
return 0;//不是完数。
}
int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}