质因数分解
题目描述
输入一个正整数 n n n,将 n n n分解成质因数乘积的形式。 质因子从小到大排列。
输入格式
一个整数 n n n。
输出格式
分解质因数的结果,注意运算符前后应有空格。
样例 #1
样例输入 #1
36
样例输出 #1
36 = 2 * 2 * 3 * 3
提示
1 < n < 1 0 9 1 < n < 10^9 1<n<109。
答案
#include<bits/stdc++.h>
using namespace std;
bool isp(long long x){
if(x<=1)return false;
if(x==2)return true;
for(int i=2;i*i<=x;i++)
if(x%i==0)
return false;
return true;
}
int main(){
int n;
cin>>n;
cout<<n<<" "<<"="<<" ";
while(1){
for(int i=2;i*i<=n;i++){
while(n%i==0&&isp(i)){
n/=i;
if(n!=1)cout<<i<<" * ";
else{
cout<<i<<endl;
return 0;
}
}
}
cout<<n<<endl;
break;
}
return 0;
}