PTA 找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
输出样例:
6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14
1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,j,sum,flag=0;// 5 scanf("%d %d",&n,&m); 6 for(i=n;i<=m;i++) 7 { 8 sum=1; 9 if(i==1) continue; //1不是完数 10 for(j=2;j<i;j++) 11 { 12 if(i%j==0) 13 { 14 sum=sum+j; 15 } 16 } 17 if(sum==i) 18 { 19 printf("%d = 1",sum); 20 for(j=2;j<i;j++) 21 { 22 if(i%j==0) 23 { 24 printf(" + %d",j); 25 } 26 } 27 printf("\n"); 28 flag=1; 29 } 30 } 31 if(flag==0) 32 printf("None"); 33 return 0; 34 }
本文来自博客园,作者:弈星,转载请注明原文链接:https://www.cnblogs.com/8023yyl/p/14652665.html

浙公网安备 33010602011771号