求 [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 = 【4】
if 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()
运行结果: