‘壹’ c语言编程:求出1000以内的完全数(详细讲解一下思路)
#include<stdio.h>
main()
{
int i,j,sum;
for(i=2;i<1000;i++) //完全数i的范围2-1000
{
sum=0;
for(j=1;j<=i/2;j++) //求i的因子,j<=i/2为了减少循环次数
{
if(i%j==0) //如果i除以j的余数为0,就说明是因子
sum=sum+j;//求因子的和
}
if(sum==i) //如果因子等于i,就说明是完全数
printf("%4d",i); //输出i
}
}
‘贰’ 用C语言编程:输出2~100之间所有完数,完数是指该数各因子之和等于该数本身
C语言程序如下:
#include <stdio.h>
int main()
{
long int i,j,sum;
for(i=2;i<100;i++)
{ sum=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(i==sum+1)
printf("%d ",i);
}
}
(2)完全数c语言程序结构分析扩展阅读:
如果一个数恰好等于它的因子之和,则称该数为“完全数”。
第一个完全数是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。
第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。
‘叁’ C语言求完数
/*完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)*/
#include<stdio.h>
void main()
{
int i,j,k,h,s,sum;
int a[200];//20个是不够的
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;//此处s=0一定要加,因为前几次循环的时候s的值已经改变
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完数的个数:%d\n",sum);
}
时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!
‘肆’ 用C语言编写“判断一个数是否为完数”!
1、首先打开C语言的编辑软件,这里是使用VS2017版,在c语言的文件中写入头文件和主函数备用:
‘伍’ 用c语言怎样编写n个数以内的完全数的程序
完全数是指所有真因子之和等于该数本身的正整数。可以使用以下C语言代码来找出小于等于n(n为正整数)的完全数:
```c
#include <stdio.h>
int main() {
int n, i, j, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
sum = 0;
for (j = 1; j <= i / 2; ++j) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
解释如下:
1. 首先,定义变量n、i、j和sum。
2. 要求用户输入n。
3. 使用两个嵌套的循环来遍历从1到n的每个数字。
4. 内部手宴循备肢环计算数字i的所有真因子之和。
5. 如果该总和等于仿薯世数字i本身,则输出该数字,即它是一个完全数。
6. 最后返回0结束程序。
注意,此代码中包含了一个优化,即内部循环只需要遍历1到i的一半,因为大于i的一半的因子已经在之前被计算过了。
‘陆’ c语言判断完全数
#include<stdio.h>
intIsPerfect(intn)
{inti,s=1;
for(i=2;i<=n/2;i++)
if(n%i==0)s+=i;
returns==n;
}
intmain()
{intn;
scanf("%d",&n);
printf("%dis%saperfectnumber
",n,IsPerfect(n)?"":"not");
return0;
}
‘柒’ 完美数 C语言编程
完美数(Perfect number),又称完全数或完备数,是一些特殊的自然数。该数所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。如果一个数恰好等于它的因子之和,则称该数为“完美数”。
所以根据定义,可以得到判断完美数的程序:
intis_perfect_number(intn)//对n进行判断,如果是完美数,返回1,否则返回0.
{
intj,sum=0;
sum=0;
for(j=1;j<n;j++)//对每个小于n的正数进行遍历,
if(n%j==0)//如果是因子,
sum=sum+j;//累加到sum上。
returnsum==n;//返回结果。
}