2021年9月20日浙大研究生复试机试第一题答案python

题目大概是一个素数的翻转数也是一个素数
eg:37是第12个素数
37的翻转数是73
73是第21一个素数
|12-3*7|<=T(门限)and |12-21|<=T(门限)

求[n1,n2]这个区间内有多少个符合条件的素数

'''
Author: 365JHWZGo
Description: 考试题
Date: 2021-09-20 15:13:24
FilePath: \Python\demo2.py
LastEditTime: 2021-09-20 15:49:52
LastEditors: 365JHWZGo
'''


def judgePrime(x):
    if x == 2:
        return True
    elif x % 2 == 0:
        return False
    for i in range(3, int(x**0.5) + 1, 2):
        if x % i == 0:
            return False
    return True


n1, n2, T = map(int, input().split())
prime = dict()
ans = []
j = 0
for i in range(2, n2 + 1):
    if judgePrime(i):
        j += 1
        prime[i] = j
#print(prime)

for i in range(n1, n2 + 1):
    if i in prime.keys():
        s = list(str(i))
        s.reverse()
        t = eval('*'.join(s))
        reverseInt = int(''.join(s))
        if reverseInt in prime.keys():
            indexOri = prime[i]
            indexRev = prime[reverseInt]
            if (-T <= indexOri - t <= T) and (-T <= indexOri - indexRev <= T):
                ans.append(i)
ans.sort()
for i in range(len(ans)):
    if i != len(ans) - 1:
        print(ans[i])
    else:
        print(ans[i], end='')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

365JHWZGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值