解题思路:1和素数直接输出,而奇数和偶数需要不断的拆数至1。
参考代码:
#include <stdio.h> #include <math.h> int main(){ int num[10001] = {0}; int a,b; int i,j,k,t; num[2] = 1; for(i = 3; i <= 10000; i++){ for(j = 2; j <= sqrt(i); j++){ if(i%j == 0) break; } if(j > sqrt(i)) num[i] = 1; } scanf("%d %d", &a,&b); for(i = a; i <= b; i++){ if(num[i] == 1) //素数 printf("%d=%d", i,i); else if(i == 1) //1 printf("%d=%d", i,i); else{ //奇偶数 printf("%d=", i); t = i; for(j = 2; j <= i; j++){ if(num[j] == 1 && i%j == 0){ //因子是质数,且被整除 if(i/j == 1) //处理在末尾多输出一个*的问题 printf("%d", j); else printf("%d*", j); i /= j; //由当前因子推出该数的下一个因子 j = 1; //回溯 } if(i == 1) //拆分完成 break; } i = t; } printf("\n"); } return 0; }
0.0分
0 人评分
C二级辅导-同因查找 (C语言代码)浏览:585 |
C二级辅导-统计字符 (C语言代码)浏览:506 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:677 |
Cylinder (C语言描述+详细分析)浏览:3265 |
1126题解浏览:594 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:664 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:642 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:403 |