C语言题目 编程题目

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:28:21
编程找出 1000之内的完数

最好在写上啥叫完数 谢谢

一个数如果恰好等于它的因子之和,这个数就叫做完数.
方法1
#include <stdio.h>
void main()
{
int n,k,sum;
for(n=1;n<=1000;n++)
{
sum=0;
for(k=1;k<n;k++)
if(n%k==0)
sum=sum+k;
if(sum==n)
{
printf("%d\tits factors are ",n);
for(k=1;k<n;k++)
if(n%k==0)
printf("%d ",k);
printf("\n");
}
}
}
方法2
/*一个数恰好等于它的因子之和.6=1+2+3*/
#include <stdio.h> /*头文件*/
#define N 1000 /*搜索范围在1000以内*/

int main(int argc, char *argv[]) /*主函数*/
{
int i; /*循环变量*/

for(i=1;i<=N;i++) /*循环找出小于N的所有完数并输出其因子.*/
{
if(wanshu(i)) print_factor(i);
continue;
}
return 0;
} /*主函数结束*/

int wanshu(int x) /*判断x是否完数*/
{
int i,sum=0;
// int factor[N]={0};

for(i=1;i<=x;i++) /*对所有x的因子求和*/
{
if(x%i==0) sum=sum+i;
continue;