wyp02033 发表于 2018-7-25 10:26:58

方法1:
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 is_all_primes(num):
    if num < 10:
      return
    else:
      num_str = str(num)
      for each in num_str:
            if not is_prime(int(each)):
                return False
      return True

for i in range(100):
    if is_prime(i) and is_all_primes(i):
      print(i)
方法2:
from math import sqrt
from itertools import permutations
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

nums = ['2', '3', '5', '7']
for each in permutations(nums, 2):
    num = int(''.join(each))
    if is_prime(num):
      print(num, end = ' ')

nanayuri 发表于 2018-7-25 10:46:28

def zhishu(x):
    result = True
    for i in range(2, x):
      if x % i == 0:
            result = False
            break
    return result


if __name__ == "__main__":
    for num in range(2, 100):
      dec = num // 10
      car = divmod(num, 10)
      if zhishu(num) is True and zhishu(dec) is True and zhishu(car) is True:
            print(num)

mongoole 发表于 2018-7-25 11:01:31

本帖最后由 mongoole 于 2018-8-14 15:34 编辑

zhishu = []
for i in range(2,101):
    sqt = i // 2
    while sqt > 1:
      if i % sqt == 0:
            # print("%d的最大公约数为:%d"%(i,sqt))
            break
      sqt -= 1
    else:
      zhishu.append(i)
      # print("%d是素数"%i)
      m = i // 10
      n = i % 10
      if m in zhishu:
            if n in zhishu:
                print('这样的数有:%d'%i)

天圆突破 发表于 2018-7-25 13:35:48

本帖最后由 天圆突破 于 2018-7-25 13:44 编辑

from functools import reduce
def su(n):
    if not n%2 and n !=2 or n==1:return False
    for i in range(3, n//2,2):
      if not n%i:return False
    return True

lst = list(filter(lambda x:bool(reduce(lambda x,y:x*y, map(lambda x:su(int(x)),list(str(x))))), filter(lambda x:su(x),)))
print(lst)

坠入暮光 发表于 2018-7-25 14:22:33

def Judge(integer):
    z = int(integer**0.5 + 1)
    for i in range(1, z):
            if (integer % i == 0) and (i != 1) and (i != integer):
                return False
    return True

for i in range(10, 100):
    if Judge(i):
      ten_number = i // 10
      unit = i % 10
      if Judge(ten_number) and Judge(unit):
            print(i)

wwq天天 发表于 2018-7-25 15:00:13


#判断整体是质数的函数

def zt_zs(s):
    x = int(s**(0.5)+1)
    for i in range(2,x):

      y = s % i
      if y == 0:            
            break   
    else:
      return s


#判断十位是质数


def ss_ss(h):
    x = h // 10

    if x>2:
      for i in range(2,int(x**0.5+1)):
            m = x%i
            if m==0:
                break

      else:
            return h

def ss_s2(h):
    y = h % 10
    if y>2:
      for i in range(2,int(y**0.5+1)):
            if y%i==0:
                break
      else:
            print (h)   

if __name__=='__main__':

    for i in range(10,101):

      h = zt_zs(i)
      if h!=None:
            h = ss_ss(h)
            if h!=None:
                ss_s2(h)

            

大头目 发表于 2018-7-25 15:47:54

import math
def is_prime(number):
        if number > 1:
                if number == 2:
                        return True
                if number % 2 == 0:
                        return False
                for current in range(3, int(math.sqrt(number) + 1), 2):
                        if number % current == 0:
                                return False
                return True
        return False

list1 = []
for i in range(100):
        if is_prime(i):
                list1.append(i)

list2 = []
for j in list1:
        if is_prime(j//10) and is_prime(j%10):
                list2.append(j)
               
print(list1)
print(list2)

汝鱼得水 发表于 2018-7-25 15:53:02

for i in range(2,101):
    P = 0
    for j in range(2,i-1):
      if i%j == 0:
            P = 1
            break
    if P == 0:
      print (i)

KkaBum 发表于 2018-7-25 17:06:19

不会写,看下大神写的

冷小漠 发表于 2018-7-25 18:02:25

def is_zhi(num):
    if num == 0 or num == 1:
      return False
    for i in range(2,num):
      if num % i == 0:
            return False
    return True

for i in range(10,100):
    if is_zhi(i):
      if is_zhi(i // 10) and is_zhi(i % 10):
            print(i)

说语 发表于 2018-7-25 18:44:14

for i in range(22,100):
    if ((i//10) in (2,3,5,7)) and ((i%10) in(3,7)):
      for j in range(2,i):
            if i%j==0:
                break
      else:
            print(i)
   

学学看看 发表于 2018-7-25 19:22:08

CC柴 发表于 2018-7-25 20:10:15

诶,又长又臭!list1 = []
for i in range(10,100):
    a = 0;b = 0
    for j in range(2,i):
      if i%j != 0 :
            a = 1
      else:
            b = 1
    if a == 1 and b ==0:
      list1.append(i)
list2 =
for m in list1:
    if ((m//10) in list2) and ((m%10) in list2):
      print(m,end=" ")

duliping 发表于 2018-7-26 12:08:49

list1 =
prime_list =
list2 = ) in prime_list and int(str(i)) in prime_list]
list2

chongchuigu 发表于 2018-7-26 15:44:20

本帖最后由 chongchuigu 于 2018-7-26 21:23 编辑

def prime(n):
        for i in range(2,n):
                if n%i==0:
                        return False
        else:
                if n<2:
                        return False
                else:       
                        return True
for i in range(10,100):
        a=prime(int(str(i)))
        b=prime(int(str(i)))
        c=prime(i)
        if a and b and c:
                print(i)

小Q学Python 发表于 2018-7-26 16:27:27

def isprime(n):
    if n == 1 or n == 0:
      return False
    if n == 2:
      return True
    for i in range(2, int(n**0.5)+1):
      if n%i == 0:
            return False
    return True

l1 =

l2 =

result = ) in l1 and int(str(i)) in l1]

print(result)

管道工 发表于 2018-7-26 17:51:21

本帖最后由 管道工 于 2018-7-26 17:56 编辑

a = []
b = []
c = []
for i in range(10,101):
        cont = 0
        for l in range(1,i+1):
                if i%l == 0:
                        cont += 1
        if cont == 2:
                a.append(i)

for i in a:
        ge=i%10
        cont1 = 0
        cont2 = 0

        for l in range(1,ge+1):
                if ge%l==0:
                        cont1 += 1       
                        if l == ge:
                                if cont1 ==2 :
                                        b.append(i)
                                cont1 =0
for i in b:
        shi = int(i/10)
        for m in range(1,shi+1):
                if shi%m== 0:
                        cont2 += 1
                        if m==shi:
                                if cont2==2 :
                                        c.append(i)
                                cont2 =0
print(c)

colinshi 发表于 2018-7-26 18:01:42

#返回X以内的质数列表,6N±1法则
def zhisu(x):
    z =
    for i in range(6,x,6):
      if FindZS(i-1,z) is True:
            z.append(i-1)
      if FindZS(i+1,z) is True:
            z.append(i+1)
    return z

#判断X是不是质数,zs为小于x的质数列表
def FindZS(x,zs):#一个数(N)不能被小于根号N的数整除,那么这个数就是质数。
    for j in zs:
      if j > x**0.5:#所以当除数大于根号N的数时,跳出循环
            break
      if x%j == 0: #余数为0时,这个数就是合数返回False
            return False
    return True

def zsprint(z):
    l = ['1', '2' ,'3', '5', '7']
    for i in z:
      for j in str(i):
            if j not in l:
                break
      else:
            print(i)

if __name__ == '__main__':
    n=100
    zsprint(zhisu(n))

solomonxian 发表于 2018-7-26 19:07:47

条件范围放大一点,输入不限制100以内,输出不限制2位数
def fun(n=100):
    prime = [i for i in range(2, n+1) if 0 not in
             (i%j for j in range(2, int(i**0.5)+1))]
    result = []

    for k in prime:
      num = k
      while num:
            num, temp = divmod(num, 10)
            if temp not in prime:
                break
      else:
            result.append(k)
            
    return result

丨游戏灬需要 发表于 2018-7-28 00:50:29

本帖最后由 丨游戏灬需要 于 2018-7-28 16:38 编辑

from math import sqrt
def is_prime(n):
    #直接拿百度的代码,因为自己想不出
    if n == 1:
      return False
    for i in range(2, int(sqrt(n))+1):
      if n % i == 0:
            return False
    return True

def q(range_ ,start = 10):
    temp = []
    a_prime = list(filter(is_prime ,range(1,11))) #此处变通性不够
    for i in range(start ,range_):
      if is_prime(i):
            temp.append(i)
    result = []
    for i in temp:
      for i2 in str(i):
            if not is_prime(int(i2)):
                break
      else:
            result .append(i)
    return result

a = q(100)
print (a)
页: 1 [2] 3
查看完整版本: Python:每日一题 190