站外题(一本通上的)求解
题目描述: 把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。
输入一个正整数n,将n分解成质因数乘积的形式。
输入:
一个正整数n。
输出: 分解成质因数乘积的形式。质因数必须由小到大,见样例。
样例输入:
36
样例输出:
36=2∗2∗3∗3
提示:
数据范围:
对于所有数据,2≤n≤20000。
#include <bits/stdc++.h>
#include <string>
#include <algorithm>
using namespace std;
bool is_prime(int qw){
if(qw==1||qw==0){
return false;
}else if(qw==2){
return true;
}
for(int k=2;k*k<=qw;k++){
if(qw%k==0){
return false;
}
}
return true;
}
int main(){
long long a,b=0,c,l,r,m,n,sum=0,ans=0;
cin>>n;
cout<<n<<"=";
for(int i=2;i*i<=n&&is_prime(i)==true;i++){
if(n%i==0){
while(n%i==0){
if(n%i==0){
if(b==0){
cout<<i;
b=1;
}else{
cout<<"*"<<i;
}
n/=i;
}else{
break;
}
}
}
}
return 0;
}