用python生成2个1000到10000随机数并找出素数

随机生成两个1000到10000之间的整数,若这两个整数之间有素数,则输出找到的最小的一个素数,否则什么都不输出。

以下是详细解答(包括解释和运行结果图),望采纳

  • 可以使用 Python 的 random 模块来生成随机数。可以使用 random.randint() 方法来生成一个在指定范围内的随机整数。

  • 接下来,可以使用一个简单的算法来判断一个数是否是素数。例如,可以尝试枚举小于这个数的所有自然数,并判断它们是否能整除这个数。如果没有任何自然数能整除这个数,则这个数就是一个素数。

  • 输出最小的素数时,可以枚举两个随机数之间的所有整数,并判断它们是否是素数。如果找到了一个素数,就输出它。

下面是一个例子,展示了如何实现这个功能:

import random

# 生成两个 1000 到 10000 的随机整数
a = random.randint(1000, 10000)
b = random.randint(1000, 10000)

# 在这里,检查两个数之间是否有素数
# 如果有,找到最小的一个并输出
# 否则什么都不输出

def is_prime(n):
    # 对于小于 2 的数,直接返回 False
    if n < 2:
        return False

    # 从 2 开始枚举到 n-1,如果可以整除 n,则 n 不是素数
    for i in range(2, n):
        if n % i == 0:
            return False

    # 如果上面的循环都没有返回,说明 n 是素数
    return True

min_num = min(a, b)
max_num = max(a, b)
for num in range(min_num, max_num + 1):
  if is_prime(num):
    print("找到"+str(min_num)+"和"+str(max_num)+"之间的第1个素数,是", num)
    break
  else:
    pass

img

实现代码如下,望采纳

# -*- coding: utf-8 -*-

from math import sqrt
import random

def isPrimes(n):
    # 判断素数
    if n <= 1:
        return False
    for i in range(2, int(sqrt(n) + 1)):
        if n % i == 0:
            return False
    return True


num1 = random.randint(1000,10001)
num2 = random.randint(1000,10001)

if isPrimes(num1) and isPrimes(num2):
    print(min(num1,num2))
elif isPrimes(num1):
    print(num1)
elif isPrimes(num2):
    print(num2)
else:
    pass