题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
#include <iostream>
#include <math.h>
using namespace std;
bool IsPrime (int m)//判断素数
{
for(int i=2;i<=(int)sqrt((double)m);i++) {
if(m%i==0){
return false;
}
}
return true;
}
int main()
{
int m;
cout<<"请输入一个整数:";
cin>>m;
if(IsPrime(m)){
cout<<m<<"="<<"1*"<<m;
}
else{
cout<<m<<"=";
for(int i=2;i<=m;i++){
while(m%i==0){
m/=i;
cout<<i;
if(m!=1)
cout<<"*";
}
}
}
return 0;
}
Sample Output 1
请输入一个整数:32
32=2*2*2*2*2
Sample Output 2
请输入一个整数:101
101=1*101
Sample Output 3
请输入一个整数:180
180=2*2*3*3*5