解题思路:
我们只用从2开始判断就好,不用判断是否为素数,因为如果能被2整除,那么会一只除2,直到2不行为止,那么2都不可以了,4、8等2的倍数肯定不可以!3、5、7、11、等等同理于2;
然后就是 * 的处理了, n每次处理依次就会减小,知道n=i的时候,下一步n就等于0了,我们只用判断n==i?
如果等于,那么就步需要输出 *.
注意事项:
参考代码:
#include <cstdio> int main() { int n; scanf("%d", &n); printf("%d=", n); for(int i = 2; i <= n; ++i) { while(n%i == 0 && n != i) { printf("%d*", i); n /= i; } if(n == i) { printf("%d\n", n); } } return 0; }
0.0分
13 人评分
The 3n + 1 problem (C语言代码)浏览:603 |
分糖果 (C语言代码)浏览:980 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
杨辉三角 (C语言代码)浏览:733 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:607 |
DNA (Java代码)浏览:971 |
C语言训练-求素数问题 (C语言代码)浏览:630 |
【亲和数】 (C语言代码)浏览:732 |
防御导弹 (C语言代码)浏览:2288 |
printf基础练习2 (C语言代码)浏览:651 |