当前位置:首页 » 编程语言 » 完全数c语言

完全数c语言

发布时间: 2022-07-19 02:09:16

c语言:完全数程序

如果想显示完全数的因子的话,用数组存储比较合适。你的程序有个逻辑错误。
if(a%b==0)你忘记还有自身也是自身的因子数,导致后面的判别式永远不成立,应改为
if(a%b==0&&a!=b)
自己改了下用数组的:
#include<stdio.h>
int
main()
{
int
k[20],a,b,c;
for(a=2;a<=1000;a++)
{c=0;
for(b=1;b<=a;b++)
{
if(a%b==0&&b!=a)
{
k[c]=b;
c++;
}
if(b==a){
int
num=0;
for(int
i=0;i<c;i++)
num=num+k[i];
if(num==a){
printf("%d
",a);
printf("its
factors
is
:
");
for(int
i=0;i<c;i++)
printf("%d
",k[i]);
printf("\n");
}
}
}
}
return
0;
}

㈡ C语言中的完数是什么意思

欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(p-1)*(2^p-1)
其中2^p-1是素数

完全数(Perfect number)是一些特殊的自然数:它所有的真因子(即除了本身以外的约数
)的和,恰好等于它本身。

例如:第一个完全数是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,8128。

古希腊数学家欧几里德是通过 2^(n-1)*(2^n-1) 的表达式发现头四个完全数的。

当 n = 2^1*(2^2-1) = 6
当 n = 2^2*(2^3-1) = 28
当 n = 2^4*(2^5-1) = 496
当 n = 2^6*(2^7-1) = 8128
欧几里德证明了:一个偶数是完数,当且仅当它具有如下形式:2^(n-1)*(2^n -1)。

尽管没有发现奇完数,但是当代数学家奥斯丁·欧尔(Oystein Ore)证明,若有奇完全
数,则其形状必然是12p + 1或36p + 9的形式,其中p是素数。在1018以下的自然数中奇完
数是不存在的。

㈢ c语言 完全数 最快算法

s每次要初始化
有个}犯错地方了
<=n改成<
#include
void
main()
{int
i,n;
int
s=0;
printf("input
a
number
n(1
评论
0
0
加载更多

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

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

㈤ c语言完全数问题

int main ()
{
int m,n,a,i,e,f;
scanf("%d %d",&m,&n);
int count=0;//统计m n之间一共多少个符合要求
for(i=m;i<=n;i++)
{
e=sqrt(i+100);//一个数加100
f=sqrt(i+268);//一个数加268
if ( (sqrt(i+100)==e)&& (sqrt(i+268)==f) )
{
count+=1;//计数
printf("%d ",i);//打印
}
}
if( count==0)
{
printf ("no");//在m n之间全部检测结束,如果count依然等于0,才能打印no
}

return 0;
}
请采纳,谢谢。

㈥ C语言求完全数~~

#include<stdio.h>
void isPerfect(int m){ //定义判断一个数是否为完全数的函数isPerfect
int i,sum=0;
for(i=1;i<=m/2;i++){
if(m%i==0){
sum+=i;
}
}
if(sum==m){
printf("你输入的这个数是完全数\n");
}
else
printf("你输入的这个数不是完全数\n");
}
main(){
int a;
printf("请输入一个整数a:\n");
scanf("%d",&a);
isPerfect(a);//调用这个函数
}

㈦ c语言编写程序:求出1-100之间的完全数.所谓完全数是指这样的数,该数刚好等于

#include<stdio.h>

#defineMAX100/*100以内的完全数*/

intmain(void){
intx,temp,sum;/*X表示要判断的数,temp表示数的因子,sum表示因子之和*/

for(x=1;x<=MAX;x++){
sum=0;
for(temp=1;temp<x;temp++){/*判断x能否被temp整除,如果可以,则是因子,进行求和*/
if(x%temp==0)
sum=sum+temp;
}
if(sum==x)/*如果是完数,打印输出*/
printf("%d ",x);
}

putchar(' ');
fflush(stdin);
getch();
return0;
}

运行结果

㈧ 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;
}

热点内容
访问策略更新 发布:2025-02-01 06:39:29 浏览:498
pythoneditplus 发布:2025-02-01 06:31:57 浏览:275
bmp转png源码 发布:2025-02-01 06:30:08 浏览:470
魔兽联盟人多的服务器是什么 发布:2025-02-01 06:25:25 浏览:41
c语言字符串子串删除 发布:2025-02-01 06:25:23 浏览:534
怎么改电脑锁屏密码 发布:2025-02-01 06:16:55 浏览:472
存储卡不能格式化怎么办 发布:2025-02-01 06:02:55 浏览:691
scratch编程网站 发布:2025-02-01 05:51:27 浏览:396
安卓怎么更好用 发布:2025-02-01 05:45:38 浏览:147
ps如何存储多页为pdf 发布:2025-02-01 05:44:15 浏览:33