输入一个正整数,求它的所有素数因子。 (质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)
输入
输入为一个正整数,如:15
输出
输入为它的所有素数因子,以空格为分隔,如:3 5
样例
标准输入复制文本 |
15 |
标准输出复制文本 |
3 5 |
标准输入复制文本 |
16 |
标准输出复制文本 |
2 |
标准输入复制文本 |
19 |
标准输出复制文本 |
19 |
解题思路:
1、先在2到n里找素数 i%j!=0
2、在这些素数里面找 n 的因数 n%i==0
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
//先找从2到n的所有素数
for(int i=2; i<=n; i++) {
bool flag=1;
for(int j=2; j<=sqrt(i); j++) {
if(i%j==0) {
flag=0;
break;
}
}
//再找符合条件的素数中符合n的因数因子
if(flag&&n%i==0) {
cout<<i<<" ";
}
}
return 0;
}