质因数递归分解
#include "stdio.h" #include <stdlib.h> #include <iostream> #include <math.h> using namespace std; int Prime(int number){ for(int i = 2; i <= sqrt(number); i++ ) if(number%i == 0 ) return 0; return 1; } void PrimeFactor(int number){ for(int i = 2; i <= number; i++) if(number%i == 0 && Prime(i)) { cout << i; if(!Prime(number)) cout << '*'; number = number/i; PrimeFactor(number); return ; //一定要加,否则第一次分解得到的数会因为for循环再次被分解 } } int main(){ int number; cout << "please key in the number:" << endl; cin >> number; cout << "the result is :number = "; PrimeFactor(number); cout << endl; return 1; }