使用递归完成质因数分解
每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。对于合数21,可以分解为3*7,输入合数n(0<=n<=1000),输出对应的质因数分解式.
代码示例:
#include<iostream>
using namespace std;
int a[1000];
int index=0;
bool prime(int y) {
bool flag = true;
for (int i=2; i*i<=y; i++) {
if (y%i==0) {
flag = false;
break;
}
}
return flag;
}
void prime_factor(int x) {
if (prime(x)) {
a[index++]=x;
return;
}
for (int i=2; i<=x; i++) {
if (prime(i) && x%i==0) {
a[index++] = i;
prime_factor(x/i);
break;
}
}
}
int main(){
int n;
cin >> n;
prime_factor(n);
cout << n << '=' << a[0];
for (int i=1; i<index; i++) {
cout << '*' << a[i];
}
return 0;
}