冬雪雪冬 发表于 2018-7-24 15:23:28

Python:每日一题 190

本帖最后由 冬雪雪冬 于 2018-7-28 20:30 编辑

我们的玩法做了一下改变:

1. 楼主不再提供答案。
2. 请大家先独立思考,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。开始阶段是看不到其他人的回帖的,等答题完成,开始评分时再取消限制。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。

题目:
23是质数,它的十位和个位2和3也是质数,求出100以内所有这样的两位数质数。
注:最近几期的题目可能有点难度,参与的鱼油不够踊跃,这回来个难度低的题,希望更多的人参加。

小木子c 发表于 2018-7-24 16:21:23

list1 =
list0 = []
for each in range(10,100):
    for i in range(1,each//2+1):
      for j in range(1,i+1):
            if i * j == each:
                if each in list0:
                  pass
                else:
                  list0.append(each)
list2 =
for each in list0:
    list1.remove(each)
for each in list1:
    if (each//10 in list2) and (each%10 in list2):
      print(each,end=',')



23,37,53,73,

graceasyi 发表于 2018-7-24 16:53:03

本帖最后由 graceasyi 于 2018-7-24 17:06 编辑

def is_prime(n):
    if n not in :
      for i in range(2, n):
            if n % i == 0:
                return False
      else:
            return True
    else:
      return False


for n in range(11, 100):
    if is_prime(n):
      if is_prime(n % 10) and is_prime(n // 10):
            print(n)

另一种思路:由于要求每一位都是质数,因此先找出10以内的质数,2,3,5,7,再组合后判断符合条件的,这样一共只需要判断25次质数就可以了。
p =
result =
print(result)

结果:
23
37
53
73

augur 发表于 2018-7-24 16:56:28

def isPrime(num):
    if num == 2:
      return True
    elif num == 0 or num == 1:
      return False
    else:
      for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                return False
      return True

print()

拉了盏灯 发表于 2018-7-24 17:22:37

明天要去军训了,一个星期都不能摸可爱的python了,{:10_266:}{:10_266:}{:10_266:}{:10_266:}

def fun190(num=100):
    for each in range(10,num+1):
      if each % 2 != 0 and each % 3 != 0 and each % 5 != 0 and each % 7 != 0:
            print(each)
            count = 0
            for i in str(each):
                if i in '2357':
                  count += 1
                else:
                  pass
            if count == len(str(each)):
                print(each)

JessiFly 发表于 2018-7-24 17:55:11

本帖最后由 JessiFly 于 2018-7-24 17:56 编辑

def isprime(n):
    if n == 1:
      return False
    elif n == 2:
      return True
    elif n % 2:
      n_sqrt = n ** 0.5
      i = 3
      while i <= n_sqrt:
            if n % i == 0:
                return False
            i += 1
      return True
    else:
      return False

for n in range(10,100):
    a = n // 10
    b = n % 10
    if isprime(n) and isprime(a) and isprime(b):
      print(n)

结果
23
37
53
73

zhou995287902 发表于 2018-7-24 18:05:11

本帖最后由 zhou995287902 于 2018-7-24 21:26 编辑

def isprime(number):
    if number==0 or number==1:
      return False
    else:
      for i in range(2,number//2+1):
            if number%i==0 :
                break
      else:
            return True

for each in range(10,100):
    if isprime(int(str(each))) and isprime(int(str(each))) and isprime(each):
      print(each)
   
      

晓屁屁 发表于 2018-7-24 18:07:30

本帖最后由 晓屁屁 于 2018-7-25 09:40 编辑

class Prime:
    def search(self,num):
      for i in range(2, num):
            if num%i == 0:
                return False
      return True
    def pos(self,num):
      if len(str(num)) == 2:
            self.gew = num%10
            self.shw = num//10%10
            return (self.shw,self.gew)

p = Prime()
a = []
for i in range(2,100):
    if p.search(i) and p.pos(i) != None:
      a.append(p.pos(i))
    else:
      pass
for j in a:
    if p.search(j) and p.search(j) and j != 1:
      print(''.join( ))
    else:
      pass

为了练习类,写的很low

塔利班 发表于 2018-7-24 18:48:58

def isp(x):
    if x>1:
      if x==2:
            return True
      if x%2==0:
            return False
      for i in range(3, int(x**0.5 + 1), 2):
            if x % i == 0:
                return False
      return True
    return False
for i in range(2,100):
    if isp(i) and isp(i//10) and isp(i%10):
      print(i)

凌九霄 发表于 2018-7-24 19:25:36

本帖最后由 凌九霄 于 2018-7-26 15:48 编辑


def isPrime(n):
    if n <= 1:
      return False
    i = 2
    while i * i <= n:
      if n % i == 0:
            return False
      i += 1
    return True


def outP(num):
    bool = True
    if isPrime(num):
      strnum = str(num)
      for i in strnum:
            if not isPrime(int(i)):
                bool = False
                break
    else:
      bool = False
    return bool


X =

print(X)





from itertools import permutations
from math import sqrt

A = * 10 + x, list(permutations(, 2)))) if
   0 not in ]


import itertools

nums = list(map(lambda x: x + x, list(itertools.permutations(('2', '3', '5', '7'), 2))))

def checkit(num):
    P =
    rtn = 1
    for i in P:
      result = num % i
      if result == 0:
            rtn = result
            break
    return rtn

A =

硫代硫酸钠 发表于 2018-7-24 19:29:13

def func():
    def is_prime(x):
      import math
      if x<2:
            return False
      temp = int(math.sqrt(x))
      for i in range(2, temp+1):
            if x%i == 0:
                return False
      return True
   
    for i in range(11, 100):
      if is_prime(i):
            if is_prime(i//10) and is_prime(i%10):
                print(i)

咯洛落 发表于 2018-7-24 20:07:17

for zs in range(10,101):
    n = 0
    g = 0
    s = 0
    gw = zs%10
    sw = int(zs/10)
    for i in range(1,zs+1):
      a=zs%i
      gi=gw%i
      si=sw%i
      if a == 0:
            n +=1
      if gi == 0:
            g +=1
      if si == 0:
            s +=1
    if n == 2 and g ==2 and s ==2:
      print(zs)

LeiShen 发表于 2018-7-24 20:31:12

本帖最后由 LeiShen 于 2018-7-24 20:37 编辑

import math

for number in range(10,100):
        m = int(number / 10)
        n = int(number % 10)
        m_f,n_f,number_f = 0,0,0

        for i in range(2,int(math.sqrt(m))+1):
                if m % i == 0:
                        m_f = 1
                        break
        if m_f != 1 :
                for i in range(2,int(math.sqrt(n))+1):
                        if n % i == 0:
                                n_f = 1
                                break
        if m_f != 1 and n_f != 1 :
                for i in range(2,int(math.sqrt(number)+1)):
                        if number % i == 0:
                                number_f = 1
                                break
                if number_f != 1 and m !=1 and n !=1:
                                print(number)

LeiShen 发表于 2018-7-24 21:16:56

LeiShen 发表于 2018-7-24 20:31


新手就要勇往直前!!!

久疤K 发表于 2018-7-24 21:44:26

>>> 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

>>> is_prime(4)
False
>>>
>>> def fun():
        ls =
        r = []
        for x in ls:
                for y in ls:
                        t = x*10+y
                        if is_prime( t ):
                                r.append( t )
        print(r)

       
>>> fun()

>>>

liuzihe1979 发表于 2018-7-24 22:08:32

def func190():
    num = 100
    result = []
   
    for i in range(10,100):
      flag = 0
      for j in range(2,i):
            if i%j == 0:
                flag = 1
      if flag == 0 :
            result.append(i)
    return result

print(func190())

糊涂windy 发表于 2018-7-24 22:27:05

def Isprime(x):
    if x<2:
      return False
    for i in range(2,x):
      if x%i==0:
            return False
    return True

for i in range(1,101):
    c = i
    flag =1
    while i:
      b = i%10
      if Isprime(b):
            i = int(i/10)
      else:
            flag = 0
            break
    if flag == 1:
      print(c)

ErTian 发表于 2018-7-25 01:06:07

答案

grf1973 发表于 2018-7-25 09:26:11

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

print()

喂猪专业户 发表于 2018-7-25 09:54:48

自己写了一个,提示最后一个判断是int和nonetype做与运算,问题出在哪
页: [1] 2 3
查看完整版本: Python:每日一题 190