任务和代码:
/*
*Copyright (c)2017 CSDN学院
*All rights reserved
*文件名称:main.c
*作者: Osseyda
完成日期:2017.9.27
*版本号:v2.
*
*问题描述:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完数。
(1)输入一个数n,判断n是否是完数
(2)输出1000以内的所有完数
*问题输出:输出1000以内的所有完数
*/
#include <stdio.h>
int main(){
int i,m,total,is_complete,n=0;
for(m=1;m<=1000;m++){
is_complete=1;
total=0;
for(i=1;i<m;i++){
if(m%i==0)
total+=i;
}
if(m!=total){
is_complete=0;
}
if(is_complete==1){
printf("%d\t",m);
n++;
if(n%5==0)
printf("\n");
}
}
return 0;
}
运行结果:
/*问题描述:亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
*问题输出:输出3000以内的全部亲密数。
*/
#include <stdio.h>
int main(){
int m,i,j,a,b;
for(m=1;m<=3000;m++){
a=0,b=0;
for(i=1;i<m;i++){
if(m%i==0)
a+=i; //a是m的因子和
}
for(j=1;j<a;j++){
if(a%j==0)
b+=j; //b是a的因子和
}
if(b-m==0&&a!=m){ //若b=m,则a和m互为亲密数
printf("a=%d,其因子和为%d\t",m,a);
printf("b=%d,其因子和为%d\t",a,m);
printf("故a和b是一对亲密数\n");
}
}
return 0;
}
运行结果:
/*问题描述:求满足条件n=a!+b!+c!的所有三位数n,其中a,b,c分别为n的百、十、个位数。
*问题输出:输出满足条件n=a!+b!+c!的所有三位数n.
*/
#include <stdio.h>
int main(){
int n,a,b,c,i,