鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

[技术交流] Python:每日一题 159

[复制链接]
发表于 2018-3-7 18:42:33 | 显示全部楼层
def prime(num): # 判断质数函数
    book = 0 #标记
    for i in range(2,num):
        if num%i == 0:
            book = 1
            break
    if book == 0:
        return num
for i in range(2,101):
    num = prime(i)
    if num != None:
        temp = prime(num*10+1)
        if temp != None:
            print(num)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 18:46:26 | 显示全部楼层
def prime_judge(num):
    if num > 1:
        for i in range(2, num):
            if (num % i) == 0:
                return False
        else:
            return True

for j in range(2,100):
    if prime_judge(j) and prime_judge(j*10+1):
        print(j)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 19:16:15 | 显示全部楼层
def min(a):
    for i in range(2,int(a ** 0.5)+1):
        if a % i == 0 :
            return 0
    return 1
for j in range(2,100):
    if min(j):
         temp=j*10+1
         if min(temp):
             print("%d"% j)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 19:27:58 | 显示全部楼层
def prime(number): #判断质数
    gole = 0
    for i in range(1,number):
        if((number % i) == 0):
            gole += 1
    if(gole == 1):
        return 1
    else:
        return 0


for i in range(100):
    if(prime(i)):
        if (prime(10*i+1)): #分别判断质数
            print("%d"%i)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 19:45:30 | 显示全部楼层
def n(n):
    a = {i for i in n if all(i%ii for ii in range(2,int(i**0.5)+1))}
    b = {i*10+1 for i in a}
#求交集
    return b&a

if __name__=="__main__":
    print(n(range(2,100)))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 19:55:05 | 显示全部楼层
def isprime(num):
    if num ==2:
        return True
    elif num%2 == 0 or num == 1:
        return False
    else:
        i = 2
        while i <= num ** 0.5:
            if num%i == 0:
                return False
            else:
                i += 1
        return True

for i in range(3,100,2):
    if isprime(i):
        temp = i*10 + 1
        if isprime(temp):
            print(i,end = ' ')

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 20:08:21 From FishC Mobile | 显示全部楼层
def isPrime(n):
        if n < 2:
                return False
        else:
                for i in range(2, int(n**0.5)+1):
                        if n % i == 0:
                                return False
                else:
                        return True

for i in range(1,100):
        a = i * 10 + 1
        if isPrime(i) and isPrime(a):
                print(i, '-->', a)

##  结果:3, 7, 13, 19, 31, 43, 97
##    3 --> 31
##    7 --> 71
##    13 --> 131
##    19 --> 191
##    31 --> 311
##    43 --> 431
##    97 --> 971

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 20:12:01 | 显示全部楼层
from math import sqrt

def isPrime(n):
    for i in range(2, int( sqrt(n) ) + 1):
        if n % i == 0:
            return False
    return True

for i in range(2, 100):
    if isPrime(i):
        if isPrime(i * 10 + 1):
            print(i)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 20:31:30 | 显示全部楼层
def judge(a):
    for i in range(2,a):
            if a % i == 0:
                return 0
    return 1
for i in range(2,100):
    if judge(i) and judge(10*i+1):
        print(i)
#提出一个建议:每日一题能不能出一道普通版的再出一道难一点的。。。想多练习练习

点评

会考虑不同水平的鱼油,会穿插着不同难度的题目。谢谢建议。  发表于 2018-3-8 20:12

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 20:59:31 | 显示全部楼层
def q159():
    p=[0]*1024
    for i in range(2,32):
        if not p[i]:
            for j in range(2*i,1024,i):
                p[j]+=1

    for i in range(2,100):
        if not (p[i] or p[i*10+1]):
            print(i,'满足条件')

3, 7, 13, 19, 31, 43, 97

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 21:34:57 | 显示全部楼层
def prime(number):
    temp = 2
    while temp < number:
        if (number % temp) == 0:
            return False
        temp += 1
    return True


n = 2
while n < 100:
    if prime(n) == True:
        s = n * 10 + 1
        if prime(s) == True:
            print(n)
    n += 1

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 22:20:23 | 显示全部楼层
本帖最后由 天圆突破 于 2018-3-8 10:30 编辑
def zhishu(n):
    lst = [2]
    for i in range(3, n+1, 2):
        for j in range(3, int(i/2)+1):
            if not(i%j):break
        else:lst.append(i)
    return lst

if __name__ == '__main__':
    print([i for i in zhishu(100) if 10*i+1 in zhishu(10*max(zhishu(100))+1)])

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 22:30:54 | 显示全部楼层
zhishu_list=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
for num in zhishu_list:
    if (num*10%6==0)or((num*10+2)%6==0):
        print("%d *10 +1 = %d" %(num,num*10+1))

点评

很巧妙的方法,但我没看懂  发表于 2018-3-8 20:18

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 22:42:10 | 显示全部楼层
from math import sqrt

def is_prime(n):
    if n == 0 or n == 1:
        return False
    elif n == 2 or n == 3:
        return True
    else:
        for i in range(2, int(sqrt(n))+1):
            if n % i == 0:
                return False
    return True

def generate_special_primes(primes):
    special_primes = []
    for each in primes:
        num = each * 10 + 1

        if is_prime(num):

            special_primes.append(each)
    return special_primes

if __name__ == '__main__':
    primes = []
    for i in range(100):
        if is_prime(i):
            primes.append(i)
    
    print(generate_special_primes(primes))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 23:30:53 | 显示全部楼层
本帖最后由 125zl 于 2018-3-8 15:06 编辑

list = []
for i in range(2,1001):
    s = 0
    for j in range(2,i):
        if i % j == 0:
            s += 1
    if s == 0:
        list.append(i)
for i in list:
    if 10 * i + 1 in list:
        print(i)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 23:37:14 | 显示全部楼层
import math
def func_get_prime(n):
    L = list(filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+1)))
    L_1 = []
    for i in L:
        L_1.append(int(i)*10+1)
    return filter(lambda y: not [y%i for i in range(2,int(math.sqrt(y)+1)) if y%i == 0], L_1)
L_2 = []
for i in list(func_get_prime(100)):
    L_2.append((int(i)-1)/10)
print(L_2)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 09:27:42 | 显示全部楼层
质数*10+1得到的质数还是100以内的质数吗?还是所有的质数都行

点评

质数是100以内,质数*10+1不限定范围  发表于 2018-3-8 20:22
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 09:29:21 | 显示全部楼层
def prime(n):
    num = []
    for i in range(2,n):
        fg = 0
        for j in range(2,i-1):
            if i%j == 0:
                fg = 1
                break
        if fg == 0:
            # print (i)
            num.append(i)
    return num

def main():
    k = prime(1000)
    for g in  k:
        if (g*10+1) in k:
            print(g)


if __name__ == "__main__":
    main()

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 09:38:37 | 显示全部楼层
def isPrime(n):
    for i in range(2, int(n**0.5)+1):
        if n%i == 0: return False
    return n >= 2

def f(n):
    return [x for x in range(n+1) if isPrime(x) and isPrime(10*x + 1)]

print(f(100))

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 10:01:33 | 显示全部楼层
[x for x in range(0,100) if x%2 and (10*x+1)%2]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表