解题思路:先判断要求范围内的完数。在判断的过程中,如果是完数,按格式打印一下这个数,然后找到该完数的每一个因子(除去本身)并按格式打印每一个因子;如果不是完数,就继续判断下一个数。
注意事项:1.按格式的打印输出要有一个变量值来辅助处理换行
2.打印输出要注意空格
参考代码:
#include<stdio.h> #pragma warning(disable:4996); void test27(int num) { int b = 0;//防止第一次输出换行 for(int i=2;i<=num;i++)//先判断完数 { int sum = 1; for (int j = 2;j < i;j++) { if(i%j==0) { sum += j;//累加,判断因数和是不是等于本身,是为完数,不是就判断下一个数 } } if (sum == i)//如果是完数,再找完数的因数 { if (b)printf("\n");//防止第一次输出换行(先为假) printf("%d its factors are", i); b = 1;//让后面每个完数找完因数后换行(再为真) for (int a = 1;a < i;a++)//找完数的因数 { if (i % a == 0) { printf(" %d", a);//打印每一个完数的因数 } } } } } int main() { int a = 0; scanf("%d",&a);//输入要判断的范围 test27(a); return 0; }
0.0分
1 人评分
C语言训练-计算1977!* (C++代码)浏览:907 |
printf基础练习2 (C语言代码)浏览:826 |
【蟠桃记】 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:751 |
剪刀石头布 (C语言代码)浏览:802 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:525 |
整数平均值 (C语言代码)浏览:856 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:532 |
1197求助浏览:667 |
JAM计数法 (C语言代码)浏览:721 |