判断完数c语言
㈠ 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]出界外,没有什么问题。
如果去年这一句后仍然还有问题,可以考虑是不是有在汉字输入状态下输入命令或标点的情况。