问题描述
求出区间[a,b]中所有整数的质因数分解
输入格式
输入两个整数a,b
输出格式
每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)具体可看样例
样例输入
3 10
样例输出
3=3
4=22
5=5
6=23
7=7
8=222
9=33
10=25
提示
先筛除所有素数,然后再分解
代码详见如下:
本人水平不是很高,👯
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d",&a,&b);
int i;
for (i = a; i <= b; i++) {
int j = 2;
while (j <= i/2) {
if (i % j == 0) {
break;
}
j++;
}
printf("%d=",i);
if ((j == (i/2) + 1)||(i==1)) {
printf("%d",i);
}
else {
int p = i, t = 0;
while (t != 1) {
int q=j;
while (p%q!=0) {
q++;
}
p /= q;
j = 2;
while (j <= p / 2) {
if (p % j == 0) {
break;
}
j++;
}
if (j == (p / 2) + 1) {
printf("%d*%d",q,p);
t = 1;
}
else {
printf("%d*",q);
}
}
}
printf("\n");
}
return 0;
}