在三位自然数中有这样一些特点的数: (1)它们是素数; (2)它们中满足:十位数字是偶数,个位数字为3, 如:223,283,383,443,463…….等。 求出在三位自然数的任意区间M ~N内所有满足上述条件的素数, 并统计个数。输入只有一行,包含两个用空格隔开的任意自然数M和N (其中100<=M<N<=999)。输出共有若干行: 前若干行每行一个数,为满足条件的素数; 最后一行为统计素数的个数。用python
时间: 2023-05-30 09:05:19 浏览: 156
2010三级网络技术上机南开100题题库word版
实现:
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
m, n = map(int, input().split())
count = 0
for i in range(m, n + 1):
if i % 10 == 3 and i // 10 % 2 == 0 and is_prime(i):
print(i)
count += 1
print(count)
解析:
本题需要判断一个数是否为素数,这里使用了一个判断素数的函数is_prime。其原理是从2到n的平方根范围内依次判断是否能被整除,如果存在可以整除的数,则不是素数;否则就是素数。
对于满足十位数字为偶数,个位数字为3的三位数,可以通过对10取余数判断个位数字是否为3,对10整除10再对2取余数判断十位数字是否为偶数。
最后统计满足条件的素数个数即可。
阅读全文