鱼C论坛

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

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

[复制链接]
 楼主| 发表于 2018-3-9 20:19:43 | 显示全部楼层
solomonxian 发表于 2018-3-9 18:57
你这是用了质因数,效率比一路循环上去高啊,
之前jerry说有个最快的方法,忘了
我就顾着写得快··· ...

昨天评分到你那里刚好没有功力的,今天补上。
我的方法是用空间换取时间,能省下不少的无效循环。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 20:23:37 | 显示全部楼层
大于5的质数 其相邻的数肯定有一个为6的倍数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-9 20:58:54 | 显示全部楼层
qwc3000 发表于 2018-3-9 20:23
大于5的质数 其相邻的数肯定有一个为6的倍数

以前还真没注意这个规律,涨知识了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-9 22:07:54 | 显示全部楼层
def demo():
    i=0
    for i in range(100):
       i+=1
       value=i%2
       if value!=0:
            t=i

            value2=(t*10+1)

            if value2%2!=0:
                print('{0}---{1}'.format(t,value2))



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

使用道具 举报

发表于 2018-3-10 16:37:02 | 显示全部楼层
for x in range(2, 101):
    a = 0
    for y in range(1, x+1):
        if x % y == 0:
            a += 1
    if a == 2:
        c = x * 10 + 1
        d = 0
        for xx in range(1, c+1):
            if c % xx == 0:
                d += 1
        if d == 2:
            print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-24 17:04:31 | 显示全部楼层
a=[2]
a1=[]
for number in range(2,101):
        for temp in range(2,number):
                if number % temp == 0:
                        break
                if temp ==number -1:
                        a.append(number)

for number in a:
        for temp in range(2,10*number +1):
                if (number * 10 + 1) % temp == 0:
                        break
                if temp == 10*number :
                        a1.append(10*number +1)
       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 16:15:30 | 显示全部楼层
  1. for i in range(2,100):
  2.     for j in range(2, i):
  3.         if not i % j:
  4.             break
  5.     else:
  6.         n = i*10+1
  7.         for x in range(2, n):
  8.             if not n % x:
  9.                 break
  10.         else:
  11.             print(i)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-15 15:50:48 | 显示全部楼层
  1. def fun159(x):
  2.     result = []
  3.     for i in range(2,x+1):
  4.         for j in range(2,int(i**0.5)):
  5.             if i % j == 0:
  6.                 break
  7.         else:
  8.             n = i*10 + 1
  9.             for m in range(2,int(n**0.5)):
  10.                 if n % m == 0:
  11.                     break
  12.             else:
  13.                 result.append(i)
  14.     return result

  15. if __name__ == '__main__':
  16.     print(fun159(100))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 20:37:59 | 显示全部楼层
  1. def isPrime(num) :
  2.         flag = len([i for i in range(2, num) if num % i == 0])
  3.         if flag == 0 :
  4.                 return True
  5.         else :
  6.                 return False

  7. def findSpecialNum() :
  8.         list1 = []
  9.         for i in range(2, 101) :
  10.                 if isPrime(i) :
  11.                         if isPrime(i * 10 + 1) :
  12.                                 list1.append(i)
  13.         print(list1)

  14. findSpecialNum()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 21:43:54 | 显示全部楼层
def prime(x):
    i=2
    while i <x:
        if x%i==0:
            break
        i+=1
    else:
            return True
            
for i in range(2,100):
    t=10*i+1
    if prime(t)==True and prime(i)==True:
            print(i,10*i+1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-5 18:53:33 | 显示全部楼层
  1. def is_prime(n):
  2.     for i in range(2,int(pow(n,0.5))+1):
  3.         if not n%i:
  4.             return False
  5.     else:
  6.         return True


  7. def fun159():
  8.     prime_list = [2,3]
  9.     list1 = []
  10.     for i in range(4,10002):
  11.         if is_prime(i):
  12.             prime_list.append(i)

  13.     for i in prime_list:
  14.         if i < 100 and 10 * i + 1 in prime_list:
  15.             list1.append(i)
  16.     return list1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 17:22:07 | 显示全部楼层
  1. def fun107():
  2.     c=[]
  3.     for i in range(2,100):
  4.         for j in range(2,i//2):
  5.             if i%j==0:
  6.                 break
  7.         else:
  8.             c.append(i)
  9.     for k in c:
  10.         for z in (2,k):
  11.             if (k*10+1)/z==0:
  12.                 break
  13.         else:
  14.             print(k, '*10+1=', k*10+1)
复制代码

2 *10+1= 21
3 *10+1= 31
4 *10+1= 41
5 *10+1= 51
7 *10+1= 71
11 *10+1= 111
13 *10+1= 131
17 *10+1= 171
19 *10+1= 191
23 *10+1= 231
29 *10+1= 291
31 *10+1= 311
37 *10+1= 371
41 *10+1= 411
43 *10+1= 431
47 *10+1= 471
53 *10+1= 531
59 *10+1= 591
61 *10+1= 611
67 *10+1= 671
71 *10+1= 711
73 *10+1= 731
79 *10+1= 791
83 *10+1= 831
89 *10+1= 891
97 *10+1= 971
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-29 23:14:27 | 显示全部楼层
  1. def isprime(n):
  2.     for i in range(2,n):
  3.         if n%i == 0:
  4.             return False
  5.     return True
  6. def f159(n):
  7.     L=[]
  8.     for i in range(2,n+1):
  9.         if isprime(i) and isprime(i*10+1):
  10.             L.append(i)
  11.     return L
  12. print(f159(100))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 22:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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