题目描述
输入两个整数a,b求出区间[a,b]内所有整数的质因数分解,并以次方形式输出。例如20=2^2*5
输入格式
一行,两个整数a和b,2≤a<b<=100000
输出格式
每行输出一个数的分解,形如k=a1^n*a2*a3^m....(a1<=a2<=a3...,k也是从小到大的)
输入输出样例
输入样例1:
3 10
输出样例1:
3=3
4=2^2
5=5
6=2*3
7=7
8=2^3
9=3^2
10=2*5
【耗时限制】1000ms 【内存限制】128MB
//
//Created by Carlgood.
//
//Note:This program is written in version DEV-C++ 5.11.
//Subject source:"hppt://oj.codingle.cn"
# include <iostream>
# include<cmath>
# include<string>
# include<cstring>
# include<cstdio>
# include<algorithm>
# include<sstream>
# define This_program_is_written_by_Carlgood_Programming_Studio 9876543210
using namespace std;
void Decomposition_of_prime_factors(int n)
{
for(int i=2;i*i<=n;i++)
{
int cnt=0;
while(n%i==0)
{
n/=i;
cnt++;
}
if(cnt>1) cout<<i<<"^"<<cnt;
else if(cnt==1)
{
cout<<i;
}
if(cnt>0&&n!=1)
{
cout<<"*";
}
}
if(n!=1)
{
cout<<n;
}
}
int main()
{
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
cout<<i<<"=";
Decomposition_of_prime_factors(i);
cout<<endl;
}
return 0;
}