编程题:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数
1
#include<stdlib.h> #include<string.h> #include<math.h> int per_num(int n); int main(void) { puts("1000以内的完数为:"); for (int i = 1; i <= 1000; i++) {
if (per_num(i)) { printf("%d是完数\n",i); }
}
return 0; } // printf("\n");
int per_num(int n) { int n1 = n,sum=0; for (int i = 1; i <= n/2; i++) { if (n1 % i == 0) { sum += i; } } return sum == n ? 1:0; }
#include<iostream>
using namespace std;
bool isPerfectNumber(int number)
{
int sum=0;
for(int i=1;i<=number/2;i++)
if(number%i==0)
sum+=i;
return sum==number?true:false;
int main()
for(int i=1;i<=1000;i++)
if(isPerfectNumber(i))
cout<<i<<endl;
return 0;
#include <stdio.h> int main() { int sum = 1; for (int i = 3; i <= 1000; i++)//n { sum = 1; for (int j = 2; j < i; j++) { if (i % j == 0) { sum += j; if (sum == i) printf("%d是完数\n", i); } else { continue; } } } }
#include<std...
用户登录可进行刷题及查看答案
#include<stdio.h> #define N 1000 int main() { int i,j,k,n,sum; int a[256]; for(i=2;i<=N;i++) { sum=a[0]=1; k=0; for(j=2;j<=(i/2);j++) { if(i%j==0) { sum+=j; a[++k]=j; } } if(i==sum) { printf("%d=%d",i,a[0]); for(n=1;n<=k;n++) printf("+%d",a[n]); printf("\n"); } } return 0; }
登录后提交答案