//什么是质因子...这里其实就是把它分解为质数相乘的形式 //其实除的过程中不需要判断除数是不是质数,因为如果能被合数整除,一定会先被比它更小的质数整除,所以只需从2开始遍历除数即可 //但是我这个还是判断了,懒得改了 #include<iostream> using namespace std; bool is_prime(int num){//判断是否为质数 if(num==1){ return false; } else{ for(int i=2;i*i<=num;++i){ if(num%i==0){ return false; } } } return true; } int main(){ long num=0; cin>>num; if(is_prime(num)){ cout<<num<<" "; } while(!is_prime(num)){//一直用num除以质数,直到商变成质数为止。 for(int i=2;i*i<=num;++i){ if(num%i==0&&is_prime(i)){ num=num/i; cout<<i<<" "; break; } } } cout<<num<<" "; return 0; }