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

判断完数c语言

发布时间: 2022-10-05 06:13:29

c语言判断区间内完数的个数

你的程序没有错误,超时的问题主要是因为你的找完数的算法有问题,其中有大量的计算是无用的。比如6是一个完数,按照你的算法是用6除以1至5来找出所有因子,这样你就用了5次计算,实际有用的计算到3就可以了,这样就少了2次计算,节省了时间。对于越大的完数,无用的计算就越多。找完数算法可以这样优化:一个数的所有因子中最大的因子必定小于等于该数的一半(除了其本身以外),所以可以把 for(j=1; j<i; j++) 中的条件改为 for(j=1; j<=(int)(i/2); j++) ,这样的话,计算次数就减少了至少一半,所花费的时间也就少了。

㈡ C语言如何判断一个数是完数

1、打开c语言编辑器,新建一个C语言空白文件:
2、然后就可以开始编写代码了,这里完数的意思就是一个数等于它的因子之和,比如6的因子为1、2、3,而6刚好是这些数之和。根据完数的定义,程序要输入一个数的范围,接着计算出所选取的整数i的因子,将各因子累加到变量s
,若s等于i,则可确认i为完数:
3、最后运行查询,输入一个范围,程序就会自动查找这个范围内的数字里有那些完数,计算完成后会将其结果打印出来:

㈢ 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);
}

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

㈤ 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);

}

㈥ c语言编程题 :判断一个数是不是完数

C语言程序如下:

#include "stdio.h"

int main()

{

int n,i,sum=0;//定义一个存放因子和的变量,以及需要判断的数n,和循环条件用到的i

printf("请输入需要判断的数:");

scanf("%d",&n);//存放需要判断的数n

for(i=1;i<n;i++)//循环条件找出因子并累加

{

if(n%i==0)

sum+=i;

}

if(n==sum)

printf("%d 是完数 ",n);

else

printf("%d 不是完数 ",n);

return 0;

}

(6)判断完数c语言扩展阅读:

程序思路

假设一个数为n,我们可以用循环条件,让n分别和1,2,3,4,5……n-1进行判断是否能被整除,我们可以通过取余(%)的方法来进行判断。如果判断出来取余结果为0,那么就把这些因子全部加起来,得到因子的和。

接下来,将因子的和与n进行比较,如果相等,那么就是完数,反之不是完数。

判断一个完数,就是运用基本输入函数(scanf),将要判断的数据输入进来,之后运用循环条件来判断。

㈦ 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语言:编写一个函数,输出一批数,判断其中有无完数。

看代码,除了主函数语句printf("("%d是一个完数\n",a[i]);
中a[i]出界外,没有什么问题。
如果去年这一句后仍然还有问题,可以考虑是不是有在汉字输入状态下输入命令或标点的情况。

热点内容
循迹小车算法 发布:2024-12-22 22:28:41 浏览:82
scss一次编译一直生成随机数 发布:2024-12-22 22:04:24 浏览:956
嫁接睫毛加密 发布:2024-12-22 21:50:12 浏览:975
linuxbin文件的安装 发布:2024-12-22 21:46:07 浏览:798
vlcforandroid下载 发布:2024-12-22 21:45:26 浏览:664
电脑做网关把数据发送至服务器 发布:2024-12-22 21:44:50 浏览:432
新华三代理什么牌子的服务器 发布:2024-12-22 21:33:21 浏览:342
欢太会员密码是什么 发布:2024-12-22 20:57:28 浏览:74
sqllocaldb 发布:2024-12-22 20:07:08 浏览:126
如何找到我的服务器 发布:2024-12-22 19:52:14 浏览:301