Python填空题 的

求 [m,n] 范围内的全部素数并输出。m、n是键盘输入的正整数,如果m、n有0及负整数,则输出“输入不是正整数!”;如果范围内有素数,则输出素数,若无素数,则输出“不存在素数!”。要求:

(1) 定义isPrime(m)函数,判断正整数m是否是素数,是素数返回True,否则返回False.

(2) 定义 prtPrime(m,n)函数,打印[m,n]范围内的素数,该函数返回值是找到的素数个数,同时控制一行最多是5个素数打印。

import math

def isPrime(m):

if m == 1:

    return False

for i in range(2, int(math.sqrt(m)) + 1):

    if (m % i == 0):

        return False

else:

    return True

def prtPrime(m, n):

c = 0

print("[%d,%d]范围内的素数有:" % (m, n))

for i in     【1】    :

    if    【2】    :

        c += 1

        if c % 5 == 0:

            print(i, end=' \n')

        else:

            print(i, end=' ')

  【3】       #返回找到的素数个数

def main():

m, n = input("输入m,n: ").split(",")

m, n = int(m), int(n)

if m <= 0 or n <= 0:

    print("输入不是正整数!")

else:

    if m > n:

        m, n = n, m

    count = 【4if count == 0:

        print("不存在素数!")

main()

【1】 : range(m, n+1)
【2】: isPrime(i)
【3】: return c
【4】: prtPrime(m,n)
完整代码如下:

import math
def isPrime(m):
    if m == 1:
        return False

    for i in range(2, int(math.sqrt(m)) + 1):
        if m % i == 0:
            return False

    else:
        return True

def prtPrime(m, n):
    c = 0
    print("[%d,%d]范围内的素数有:" % (m, n))

    for i in range(m, n + 1):
        if isPrime(i):
            c += 1
            if c % 5 == 0:
                print(i, end=' \n')
            else:
                print(i, end=' ')

    return c

def main():
    m, n = input("输入m,n: ").split(",")
    m, n = int(m), int(n)
    if m <= 0 or n <= 0:
        print("输入不是正整数!")
    else:
        if m > n:
            m, n = n, m
        count = prtPrime(m, n)
        if count == 0:
            print("不存在素数!")

main()

运行结果:

img