输入2个整数m和n(1<m<=n<=10000),找出m和n之间的所有完数,并输出每个完数,完数按递增顺序输出;若m和n之间没有完数,则输出“None”。若一个整数恰好等于除自身外的各因子之和,即称其为完数。例如,6=1+2+3,其中1,2,3为6的全部因子,6为完数。
测试用例:
输入:2 100
预期输出:6 28
输入:200 400
预期输出:None
#include<stdio.h>
int main()
{
int m,n;
int mark=0;
scanf("%d %d",&m,&n);
for(int i=m;i<=n;i++)
{
int count = 0;
for(int j=1;j<i;j++){
if(i%j == 0){
count+=j;
}
}
if(count==i){
mark=1;
printf("%d ",i);
}
}
if(mark==0) printf("None");
return 0;
}
#include<stdio.h>
int n,m;
int cnt = 0;
int get(int u){
int sum = 0;
for(int i = 1;i<u;i++){
if(u%i == 0) sum+=i;
}
if(sum == u) printf("%d ",u);
return sum == u;
}
int main(){
scanf("%d %d",&m,&n);
for(int i = m;i<=n;i++){
if(get(i)) cnt++;
}
if(cnt == 0) printf("None");
return 0;
}