分解质因数

#include<iostream>


using namespace std;


bool jud(int value);
int getNums(int value);
void getValue(int array[]);
int getMin(int array[],int length,int data);
void view(int array[],int nums,int value);


int main(int argc,char** argv){

int nums = getNums(10000);
int array[nums];
getValue(array);

int test;
cin >> test;
view(array,nums,test);

return 0;
}


bool jud(int value){

for(int i = 2;i < value;i++){

if(value % i == 0){

return false;
}
}

return true;
}


int getNums(int value){

int order = 0;

for(int i = 2;i <= value;i++){

if(jud(i)){

order++;
}
}

return order;
}


void getValue(int array[]){

int order = 0;

for(int i = 2;i <= 10000;i++){

if(jud(i)){

array[order] = i;
order++;
}
}
}


int getMin(int array[],int length,int data){

for(int i = 0;i < length;i++){

if(data % array[i] == 0){

return array[i];
}
}

return 0;
}


void view(int array[],int nums,int value){

while(getMin(array,nums,value)){

cout << getMin(array,nums,value) << " ";
value = value / getMin(array,nums,value);
}

}
原文地址:https://www.cnblogs.com/viplanyue/p/12700715.html