质数问题的c程序

#include<stdio.h>

void isperfect(int a);

int sumofprime(int b);

int main()

{

int n,m,i;

printf("please input n:");

scanf("%d",&n);

isperfect(n);

return 0;

}

void isperfect(int n)

{

int i,sum;//n is you number

sum=sumofprime(n);

if(n==sum)

printf("this number is a perfect number\n");

else

printf("this number is not a perfect number\n");

}

int sumofprime(int b)

{

int flag,sum=0,n;

for(n=1;n<b&&flag;n++)

{

if(n%b==0);

{

flag=0;sum+=n;

}

  }

return sum;

}

总是输出this number is not a perfect number(完美数定义是小于这个数的质数之和恰好等于这个数,例如3=3)

Leo也叫做夹子
浏览 1344回答 1
1回答

聊发少年狂

sumofprime中b是你输入的数,所以你的sum一直都是零。
打开App,查看更多内容
随时随地看视频慕课网APP