基础练习 分解质因数
问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)
样例输入
3 10
样例输出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
提示
先筛出所有素数,然后再分解。
数据规模和约定
2<=a<=b<=10000
没啥好说的,遍历就行,遇到质因数输出。
1 #include<stdio.h> 2 #include<stdbool.h> 3 #include<math.h> 4 5 bool isPrimeNum(int n) 6 { 7 int i; 8 int flag = 0; 9 10 for (i = 2; i <= sqrt(n); i++) 11 { 12 if (n % i == 0) 13 { 14 flag = 1; 15 } 16 } 17 18 if (flag == 0) //flag == 0 so this num is a Prime Num 19 { 20 return true; 21 } 22 else 23 { 24 return false; 25 } 26 } 27 28 int main() 29 { 30 int a, b; 31 int i, j; 32 33 scanf("%d %d", &a, &b); 34 for (i = a; i <= b; i++) 35 { 36 int flag2 = 0; 37 int tem = i; 38 if (isPrimeNum(i)) //if it is a prime number 39 { 40 printf("%d=%d\n", i,i); 41 } 42 else 43 { 44 printf("%d=", i); 45 for (j = 2; j < i; j++) 46 { 47 if (tem % j == 0) //如果遇到质因数才会输出,即让flag2 = 1; 48 { 49 tem /= j; 50 j--; 51 flag2 = 1; 52 } 53 54 if (tem-1 == 0 && flag2 == 1) //如果tem=1了就说明到了最后就不用输出* 55 { 56 printf("%d", j+1); 57 } 58 else if(tem-1 != 0 && flag2 == 1) 59 { 60 printf("%d*",j+1); 61 } 62 //j--; 63 if (tem-1 == 0) 64 { 65 break; 66 } 67 68 flag2 = 0; 69 } 70 printf("\n"); 71 } 72 } 73 return 0; 74 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端