题目描述:将一个正整数N的全部质因数输出。
#include <cstdio>
#include <cstring>
void Judge();
void R(int k, int l, int h);
int J[100];
int T[50];
int N;
int main() {
Judge();
scanf("%d", &N);
R(0, 2, N);
return 0;
}
void Judge() { //判断函数
memset(J, 0, sizeof(J));
for(int a=2; a<100; a++) {
for(int b=2; b<a; b++) {
if(a%b == 0) {
J[a] = 1;
}
}
}
return;
}
void R(int k, int l, int h) {
if(h == 1) {
for(int a=0; a<k; a++) {
printf("%-3d", T[a]);
}
} else {
for(int a=l; a<=h; a++) {
if(J[a]==0 && h%a==0) {
T[k] = a;
R(k+1, a, h/a);
break;//找到一组解后就退出。
}
}
}
return;
}
p.s.:break,continue,return区别传送门