当前位置:首页 » 编程语言 » c语言判断完全数并打印
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言判断完全数并打印

发布时间: 2022-12-15 06:22:16

1. c语言完数判断

#include<stdio.h>
void
iswanshu(int
x);
void
main()
{
int
a;
printf("判断是否是完数:\n请输入一个整数:");
scanf("%d",&a);
iswanshu(a);//调用下面的函数
}
//定义一个判断是否是完数的函数
void
iswanshu(int
x)
{
int
i,k;
for(i=1;i<x;i++)
{
if
(x%i=0)
k=k+i;//如果被判断的那个数整除i余数为0则累加到k
}
//如果k等于x那输出的数就是完数
if(k=x)
{
printf("%d是完数\n",x);
printf("%d=1",x);
for(i=2;i<x;i++)
{
if
(x%i=0)
printf("+%d",i);
}
printf("\n");
}
else
printf("%d不是完数!",x);
}

2. C语言打印n内完数

#include<stdio.h>
#include<math.h>
void main()
{
int n,i,j=1,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
while(i>j)
{
if(i%j==0)
sum=sum+j;
j++;
}
if(sum==i)
{
printf("%d its factors are 1",i);
for(j=2;j<i;j++)
{if(i%j==0)
printf(",%d",j);}
printf("\n");
}
sum=0;
j=1;
}

}
程序可以运行,你的if(sum=i)错误应该为==
每行一个完数。所以换行输出应该在if(sum=i){}大括号里面。
注意sum,j的还原。

3. 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;
}

4. c语言判断一个数是否是完数

#include<stdio.h>

int main()
{
int n;
scanf("%d",&n);

int i,p=1;
for(i=2;i*i<=n;i++)
{
if(n%i==0)
{
if(i*i!=n)
p+=(i+n/i);
else
p+=i;
}
}
if(p==n)
printf("Yes\n");
else
printf("No\n");

return 0;
}

5. c语言,要求求出1~1000内的“完全数”,并以列如6=1+2+3的格式输出,问程序哪里出问题。

楼主的代码逻辑没有问题,有几个小问题。


1、1不是完全数,所以printf("1=1");没有必要打,并且打印完之后没有 换行

2、m没有初始化,需要在for(i=1;i<j;i++)之前初始化m=0

3、最后的printf(" ");需要放在if(m==j)判断里面,不然每一次for(j=2;j<=1000;j++)循环都会打印一个换行符,前面输出的结果就没了。


修改后的代码如下,楼主写代码的时候还是加上换行和缩进吧,不然看着太别扭了。

longinti,j,m;
//printf("1=1 ");//1不是完全数,没有必要打,还少了

for(j=2;j<=1000;j++)
{
m=0;
for(i=1;i<j;i++)
if(j%i==0)
m+=i;
if(m==j)
{
printf("%d=1",j);
for(i=2;i<j;i++)
if(j%i==0)
printf("+%d",i);
printf(" ");
}
//printf(" ");//换行放在if(m==j)里面,找到完全数才需要换行,不然结果全被冲掉了
}

6. C语言完全数问题

#include
<stdio.h>
int
main()
{
int
n,N,i,j,sum;
printf("输入整数n,判断n是否是完全数:\n");
scanf("%d",&n);
sum
=
0;
for
(i
=
2;i
<
n;i++)
{
if
(n%i
==
0)
sum
+=
i;
}
if
(n==sum)
printf("%d是完全数\n",n);
else
printf("%d不是完全数\n",n);
printf("输入整数N,输出1~N之间的所有完全数:\n");
scanf("%d",&N);
printf("1~N之间的所有完全数为:\n");
for
(i
=
6;i
<=
N;i++)
{
for
(j
=
2,sum
=
0;j
<
i;j++)
{
if
(i%j==0)
sum+=j;
}
if
(sum
==
i)
printf("%d\n",i);
}
return
0;
}

7. 如何用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);
}

8. 运用c语言输出100以内所有的完全数

1、首先打开vs 2017软件,打开一个准备好的工程,新建一个C语言文件,先写入头文件和main函数,里面定义需要的用到的4个变量。

9. 用C语言打印“完数”

// 本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如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);
}

10. C语言如何判断这个数是完数

1、打开c语言编辑器,新建一个C语言空白文件: