解题思路:
我们只用从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 人评分
【矩阵】 (C++代码)浏览:950 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:892 |
震宇大神的杀毒软件 (C语言代码)浏览:1080 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:585 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:771 |
A+B for Input-Output Practice (II) (C语言代码)浏览:601 |
C语言训练-排序问题<1> (C语言代码)浏览:355 |
买不到的数目 (C语言代码)浏览:3094 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1189 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:514 |