汇聚的一些OD机试题(2题)
## 1. 题目描述
功能:输入一个正整数,按照从大到小的顺序输出它的所有质因子(重复的也要列举)
输入描述:输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开
示例:
```
输入:180
输出:2 2 3 3 5
```
## 2. Solution
```python
import math
n = int(input())
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
# end = ' '表示以空格隔开
print(i, end=' ')
n //= i
# 如果上面这个for循环没能够输出,则证明这个数本身就是一个质数,直接输出即可
if n > 2:
print(n)
## 1. 题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
示例1:
```
输入:20
输出:7
13
```
## 2. Solution
```python
def judge(n):
for i in range(2, n):
if n % i == 0:
return False
return True
while True:
try:
n = int(input())
Min, pair = n, tuple()
for i in range(1, n):
j = n - i
if judge(i) and judge(j):
if abs(i-j) < Min:
pair = i, j
Min = abs(i-j)
print(pair[0])
print(pair[1])
except:
break
```
功能:输入一个正整数,按照从大到小的顺序输出它的所有质因子(重复的也要列举)
输入描述:输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开
示例:
```
输入:180
输出:2 2 3 3 5
```
## 2. Solution
```python
import math
n = int(input())
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
# end = ' '表示以空格隔开
print(i, end=' ')
n //= i
# 如果上面这个for循环没能够输出,则证明这个数本身就是一个质数,直接输出即可
if n > 2:
print(n)
## 1. 题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
示例1:
```
输入:20
输出:7
13
```
## 2. Solution
```python
def judge(n):
for i in range(2, n):
if n % i == 0:
return False
return True
while True:
try:
n = int(input())
Min, pair = n, tuple()
for i in range(1, n):
j = n - i
if judge(i) and judge(j):
if abs(i-j) < Min:
pair = i, j
Min = abs(i-j)
print(pair[0])
print(pair[1])
except:
break
```
全部评论
相关推荐
点赞 评论 收藏
转发
点赞 评论 收藏
转发