汇聚的一些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
```
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务