【题意】
对给出的数分解质因数
【思路】
从小到大试探每个素数是不是给出的数的质因数,若是则不断地除直到不是为止,输出此素数和对应的指数。
【注意点】
对输入数字为1需要特殊处理
#include <iostream>
using namespace std;
bool isPrime(long long num){
if(num<2){
return false;
}
for(long long i=2; i<num/2+1; i++){
if(num%i==0){
return false;
}
}
return true;
}
int main(int argc, char const *argv[])
{
long long num;
bool first = true;
cin >> num;
cout << num << "=";
if(num<2){
cout << num;
return 0;
}
for(long long i=2; i<=num; i++){
if(isPrime(i)){
int cnt=0;
while(num%i==0){
cnt++;
num /= i;
}
if(cnt==0){
continue;
}
if(first){
first = false;
}
else{
cout << '*';
}
if(cnt==1){
cout << i;
}
else{
cout << i << '^' << cnt;
}
}
}
system("pause");
return 0;
}