质因数递归分解

#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;

}
原文地址:https://www.cnblogs.com/digulove/p/8012711.html