C语言,编写程序,判断一个正整数a是否为完数,如果是完数,函数返回值为1;否则为0;并输出1000

以内所有的完数

#include <stdio.h>
int func(int n)
{
    int i,sum;
    for(i=1,sum=0;i<n;++i)
        if(n%i==0)
            sum+=i;
    return sum==n;
}
int main()
{
    int i;
    for(i=1;i<1000;++i)
        if(func(i))
            printf("%d\n",i);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-15
#include <stdio.h>
int isPerfect (int n) {
  int result = 0;
  for(int j = 1; j < n; ++j) {
    if( n % j == 0)
      result += j;
    if(result > n) return 0;
  }
  
  if(result == n) return 1;
  return 0;
}

int main()
{
  printf("请输入一个数: ");
  int m;
  scanf("%d", &m);
  if(isPerfect(m)) 
    printf("%d 是完数\n", m);
  else
    printf("%d 不是完数\n", m);
  return 0;
}

第2个回答  2019-04-15
这个程序我好象写过了,你自己找找,应该有追问

好的,麻烦你了,尽快噢

相似回答