编写程序,输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5
时间: 2023-11-22 13:55:50 浏览: 40
以下是一个 Python 的实现:
```python
def prime_factors(n):
factors = []
d = 2
while d * d <= n:
while (n % d) == 0:
factors.append(d)
n //= d
d += 1
if n > 1:
factors.append(n)
return factors
n = int(input("请输入一个整数:"))
factors = prime_factors(n)
print("该整数的所有素数因子为:", end="")
for factor in factors:
print(factor, end="、")
```
运行结果:
```
请输入一个整数:120
该整数的所有素数因子为:2、2、2、3、5、
```
相关问题
编写c++程序,输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5
以下是实现该功能的C++程序:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入一个整数:";
cin >> n;
for (int i = 2; i <= n; i++) {
while (n % i == 0) {
cout << i << " ";
n /= i;
}
}
return 0;
}
```
程序思路:
1. 输入一个整数n。
2. 从2开始,依次尝试将n除以每个数i,如果能整除,则i是n的一个素数因子,输出i,并将n除以i的值赋给n。
3. 重复步骤2,直到n等于1为止。
4. 程序结束。
编写程序,读入一个正整数,显示该整数的所有素数因子。例如,输入整数为120,输出应为2、2、2、3、5。java
import java.util.Scanner;
public class PrimeFactorization {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int num = input.nextInt();
System.out.print(num + "的素数因子为:");
for(int i = 2; i <= num; i++) {
while(num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
}
}
//样例输出:
//请输入一个正整数:120
//120的素数因子为:2 2 2 3 5