问题描述
求出区间[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
提示
先筛出所有素数,然后再分解。
数据规模和约定
2<=a<=b<=10000
#include<stdio.h>
#include<math.h>
int main()
{
void fun(int);
int a,b,i;
scanf("%d%d",&a,&b); //输入范围
for(i=a;i<=b;i++)
{
printf("%d=",i);
fun(i); //调用递归
}
return 0;
}
void fun(int n)
{
int j,t=1;
for(j=2;j<=sqrt(n);j++)
{
if(n%j==0) //判断不是素数
{
printf("%d*",j);
fun(n/j); //分解
t=0; //标识不是素数
break; //停止循环,每次循环只求出一个因数即可
}
}
if(t) //判断素数
printf("%d\n",n);
}