c语言定义一个函数求完数,如何用c语言求完数

用C语言:求完数

//因为没有说明结束条件,所以暂且以范围为输入两个0为结束条件

创新互联公司-专业网站定制、快速模板网站建设、高性价比苏家屯网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式苏家屯网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖苏家屯地区。费用合理售后完善,10多年实体公司更值得信赖。

#includestdio.h

int check(int low, int high);//打印low和high范围内的完数,并返回完数的个数

int test(int n);//检测n是否为完数,如果是,则打印它,并返回1,否则,返回0.

int main(){

int low, high;

int count;//count变量为low和high范围内的完数个数

scanf("%d%d", low, high);//输入范围

if(lowhigh || high10000)//若不满足要求的条件,退出程序

return (1);

while(low!=0 || high!=0)//low和high均为0,则结束

{

count=check(low, high);//打印low和high之间的完数,并返回个数给count

if(count==0)//如果完数个数为0,则打印no

printf("no");

printf("\n");

scanf("%d%d", low, high);//重新输入范围low和high

}

return 0;

}

int check(int low, int high){

int t=0;//t为发现的完数个数

int n;

for(n=low;n=high;n++)

{

if(test(n)==1)

t++;

}

return t;//返回完数个数

}

int test(int n)

{

int i;

int sum=0;//sum为因子之和

for(i=1;i=n/2;i++)

if(n%i==0)

sum=sum+i;

if(sum==n)

{

printf("%d ", n);//若n为完数,则打印,并返回1

return 1;

}

else//否则,返回0

{

return 0;

}

}

希望对你有用~~

C语言求完数

/*完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)*/

#includestdio.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;ji;j++)

{

if((i%j)==0){a[k]=j;k++;}

}

for(h=0;hk;h++)

{

s+=a[h];

}

if(i==s){printf("%d ",i);sum++;}

}

printf("完数的个数:%d\n",sum);

}

时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!

c语言初学者,编写函数求完数(一个数恰好等于其因子和),求1000以内完数。代码如下

#includestdio.h

int perfect(int a)

{

int i, s=0;

for (i = 1; i a; i++)

{

if (a%i == 0)

s = s + i;

}

return (s == a);

}

int main()

{

int i,n;

for (i = 2; i =1000; i++)

{

if (perfect(i))

printf("%5d", i);

}

}

C语言求完全数~~

#includestdio.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语言中的函数求1000以内的完数

根据完全数的定义,先计算所选取的整数a(a的取值1~1000)的因子,将各因子累加于m,若m等于a,则可确认a为完全数。

*程序说明与注释

#includestdio.h

void main()

{

int a,i,m;

printf("There are following perfect numbers smaller than 1000:\\n");

for(a=1;a1000;a++) /*循环控制选取1~1000中的各数进行判断*/

{

for(m=0,i=1;i=a/2;i++) /*计算a的因子,并将各因子之和m=a,则a是完全数输出*/

if(!(a%i))m+=i;

if(m==a)

printf("%4d ",a);

}

printf("\\n");

}

*运行结果

TThere are following perfect numbers smaller than 1000:

6 28 496

求高人用C语言函数写一个关于完数的代码

void Solve(int num)

{

int sum = 0;

int i = 0;

if (num == 0)

{

printf("No\n");

}

else if (num == 1)

{

printf("Yes, its factors are %d\n", num);

}

else

{

for (i = 1; i num; i++)

{

if (num % i == 0)

{

sum += i;

}

}

if (sum == num)

{

printf("Yes, its factors are ");

for (i = 1; i num; i++)

{

if (num % i == 0)

{

printf("%d ", i);

}

}

printf("\n");

}

else

{

printf("No\n");

}

}

}

int main() //链表建立测试

{

int n;

while(scanf("%d", n) != EOF)

{

Solve(n);

fflush(stdin); //防止输入字母造成死循环

}

return 0;

}


当前名称:c语言定义一个函数求完数,如何用c语言求完数
转载注明:http://pwwzsj.com/article/hceihc.html