WangJS 发表于 2020-4-25 13:53:34

小白Python练习册(5)【鱼币福利】

本帖最后由 WangJS 于 2020-4-25 14:09 编辑

老王出品,必是精品{:10_256:}
先评后看,已成习惯{:10_297:}

(告诉大家一个秘密,现在VIP评分也是要扣除自己的相应积分,但是在我这个帖子评荣誉和贡献是不减自己的的,快去试试吧!)

=========================================================

今天的题目是判断一个数字是否是质数(输入Q退出程序)
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

输入数字,判断此数字是否为质数(输入Q退出程序)
ps:输入完按Enter出结果哟

输入一个比2大的整数:40
40 不是质数
输入一个比2大的整数:2
输入错误,请重新输入
输入一个比2大的整数:5
5 是质数
输入一个比2大的整数:Q
积极答题,奖励鱼币{:10_279:}

回复查看参考答案:

**** Hidden Message *****
如果有收获,请评分!
【不要评鱼币!给我贡献就好{:10_254:} 】


等下还有个事!!!千万别忘了去订阅!!!(戳我前进)

zltzlt 发表于 2020-4-25 13:53:52

本帖最后由 zltzlt 于 2020-4-25 14:06 编辑

破烂版

while 1:
    s = input('输入一个比 2 大的整数:')
    if s == 'Q':
      break
    if not s.isdigit() or int(s) <= 2:
      print("输入错误,请重新输入")
      continue
    s = int(s)
    for i in range(2, int(s ** 0.5) + 1):
      if not s % i:
            b = False
            break
    else:
      b = True
    print(f'{s} {"" if b else "不"}是质数')

qiuyouzhi 发表于 2020-4-25 13:57:21

本帖最后由 qiuyouzhi 于 2020-4-25 14:03 编辑

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

while True:
    k = input("请输入一个数字(输入Q退出): ")
    if k != 'Q':
      if is_prime(int(k)):
            print(f"{k}是质数!")
      else:
            print(f"{k}不是质数!")
    else:
      break

冰河星云 发表于 2020-4-25 13:57:41

我这个更智能
while True:
    i = int(input("看看是不是质数:"))
    if i > 2:
      for z in range(2,i):
            if i%z != 0:
                d = '不是质数'
            else:
                d = '是质数'
      if d == '是质数':
            print("是质数")
      else:
            print("是合数")
    elif i == 2:
      print("是质数")
    elif i == 1:
      print("1既不是质数也不是合数")
    else:
      print("输入错误")
    i = input("是否继续?(按t继续,按f退出)")
    if i == 'f':
      break

Hello. 发表于 2020-4-25 14:04:49

地下室。。。

乘号 发表于 2020-4-25 14:05:31

本帖最后由 乘号 于 2020-4-25 14:06 编辑

地狱等等代码马上来

liuzhengyuan 发表于 2020-4-25 14:08:16

下水道。。。

乘号 发表于 2020-4-25 14:08:47

本帖最后由 乘号 于 2020-4-25 14:10 编辑

垃圾版



h = int(input("请输入一个数字"))
for j in range(2,h):
    if h % j == 0:
      print("不是质数")
      break
else:
    print("是质数")

WangJS 发表于 2020-4-25 14:14:50

zltzlt 发表于 2020-4-25 14:13


直接报错{:10_245:}

zltzlt 发表于 2020-4-25 14:16:25

WangJS 发表于 2020-4-25 14:14
直接报错

exec('print("输入数字,判断此数字是否为质数(输入 Q 退出程序)\\nps:输入完按 Enter 出结果哟")\nwhile 1:\n    s = input(\'输入一个比 2 大的整数:\')\n    if s == \'Q\':\n      break\n    if not s.isdigit() or int(s) <= 2:\n      print("输入错误,请重新输入")\n      continue\n    s = int(s)\n    for i in range(2, int(s ** 0.5) + 1):\n      if not s % i:\n            b = False\n            break\n    else:\n      b = True\n    print(f\'{s} {"" if b else "不"}是质数\')')

WangJS 发表于 2020-4-25 14:19:48

zltzlt 发表于 2020-4-25 14:16


大……大佬,厉害啊{:10_278:}

txxcat 发表于 2020-4-25 14:46:21

def primenumber(num):
    for i in range(2,num//2+1):
       if num%i==0:
         return False
    return True

print('输入数字,判断此数字是否为质数(输入Q退出程序)\nps:输入完按Enter出结果哟')
while True:
    a=input('输入一个比2大的整数:')
    if a.upper()=='Q':
      break
    if not a.isdigit() or int(a)<=2 :
      print('输入错误,请重新输入')
      continue
    print('%s %s质数' % (a,'是' if primenumber(int(a)) else '不是'))

兔子BUNNY 发表于 2020-4-25 14:54:05

本帖最后由 兔子BUNNY 于 2020-4-25 15:08 编辑

while True:
    a = input("输入一个比2大的整数(输入Q退出程序)")
    if a=='Q':
      break
    num=int(a)
    if num <= 2:
      print("输入错误,请重新输入")
      continue
    for i in range(2,num):
      if not num%i:
            print(num,'不是质数')
            break
      if i == num - 1:
            print(num,'是质数')
老小白了。话说上面为什么会有大佬
我想体验最佳答案的感觉{:10_256:}

bailean 发表于 2020-4-25 14:57:15

马上

js0086 发表于 2020-4-25 15:07:53

报错了{:10_245:}

284665 发表于 2020-4-25 16:11:18

print('输入数字,判断此数字是否为质数(输入Q退出程序)\nps:输入完按Enter出结果哟\n如果没说不是质数,便证明为质数')

while True:
    num = input('输入一个比2大的整数:')
    if num == 'Q':
      break
    elif int(num) <= 2:
      print('输入错误,请重新输入')      
    elif int(num) > 2:
      for each in range(2, int(int(num)/2) + 1):
            if int(num) % each == 0:
                print('%s不是质数' % num)
                break
    else:
      print('输入错误,请重新输入')

March2615 发表于 2020-4-25 16:12:45

from math import sqrt


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


while True:
    n = input('enter a number(enter Q to quit):')
    if n == "Q":
      print('quit')
      break
    elif not n.isdigit():
      print('please enter a right number!')
      continue
    print('{} {}是质数'.format(n, '' if isPrime(int(n)) else '不'))

1469396970 发表于 2020-4-25 16:30:31

num=input('请输入一个比2大的整数:')
n=int(num)
for i in range(2,n):
    if n<=2:
      print('输入错误,请重新输入!')
    elif num=='Q':
      break
    elif n%i!=0:
      print('%d是质数'%n)
      break
    else:
      print('%d不是质数'%n)
      break

weiter 发表于 2020-4-25 16:58:18

这个还是要扣的哇{:10_266:}

Twilight6 发表于 2020-4-25 17:25:40

number = int(input('请输入一个比2大的整数:'))
if number > 2:
    for i in range(2,number):
      count = 0
      if number%i == 0 :
            count += 1
            break
    if count == 1:
      print('%d是不是质数~~'%number)
    else:
      print('%d是质数~~'%number)
else:
    print('要大于2~~~的整数噢')

页: [1] 2 3
查看完整版本: 小白Python练习册(5)【鱼币福利】