鱼C论坛

 找回密码
 立即注册
查看: 1277|回复: 7

[已解决]Python每日一题(1)

[复制链接]
发表于 2020-3-22 11:02:12 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 wangka 于 2020-3-22 17:04 编辑

题目:
如何输入一个数,返回是否为质数
例子:
输入一个质数,返回ture
输入的不是质数,返回false
加油
最佳答案
2020-3-22 11:02:13
本帖最后由 永恒的蓝色梦想 于 2020-3-22 17:10 编辑
  1. from math import sqrt,floor

  2. def isPrime(n: int,/) -> bool:

  3.     if isinstance(n, int):
  4.         temp=n%6

  5.         if n<2 or not n&1 or temp!=1 and temp!=5:
  6.             return False

  7.         else:
  8.             for i in range(3,floor(sqrt(n)),2):
  9.                 if not n%i:
  10.                     return False

  11.             else:
  12.                 return True

  13.     else:
  14.         raise TypeError("an integer is required")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 11:02:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 永恒的蓝色梦想 于 2020-3-22 17:10 编辑
  1. from math import sqrt,floor

  2. def isPrime(n: int,/) -> bool:

  3.     if isinstance(n, int):
  4.         temp=n%6

  5.         if n<2 or not n&1 or temp!=1 and temp!=5:
  6.             return False

  7.         else:
  8.             for i in range(3,floor(sqrt(n)),2):
  9.                 if not n%i:
  10.                     return False

  11.             else:
  12.                 return True

  13.     else:
  14.         raise TypeError("an integer is required")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 12:05:37 | 显示全部楼层
  1. import math

  2. def isprime(num):
  3.     for i in range(2,int(math.sqrt(num))):
  4.         if num % i == 0:
  5.             return False
  6.         else:
  7.             return True

  8. i = int(input("Enter an integer:"))
  9. print(isprime(i))
复制代码

评分

参与人数 1鱼币 +1 收起 理由
wangka + 1 鱼C有你更精彩^_^

查看全部评分

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

使用道具 举报

发表于 2020-3-22 12:10:34 | 显示全部楼层

你需要把
  1.         else:
  2.             return True
复制代码
去掉,否则得出来的结果是错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 12:40:23 | 显示全部楼层
  1. from math import sqrt


  2. def isPrime(num):
  3.     if num <= 1:
  4.         return False
  5.     elif num % 2 == 0:
  6.         return False
  7.     else:
  8.         for i in range(3, int(sqrt(num)), 2):
  9.             if num % i == 0:
  10.                 return False
  11.         return True


  12. if __name__ == '__main__':
  13.     number = eval(input('Enter a number:'))
  14.     print(isPrime(number))
复制代码

评分

参与人数 1鱼币 -1 收起 理由
wangka -1 鱼C有你更精彩^_^

查看全部评分

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

使用道具 举报

发表于 2020-3-22 12:49:47 | 显示全部楼层
  1. import math as m


  2. def isPrime(num):
  3.     if num <= 1:
  4.         return False
  5.     else:
  6.         for i in range(2, int(m.sqrt(num)) + 1):
  7.             if num % i == 0:
  8.                 return False
  9.         else:
  10.             return True


  11. n = int(input("请输入一个整数:"))
  12. print(isPrime(n))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 13:29:44 | 显示全部楼层
第一次答这位题主的题,我来试一试
当然了 我贴出质数的定义 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,质数不包括负数和小数。
题目中只说了数,所以要剔除小数和负数
  1. import math
  2. def fun1(num):
  3.     if not isinstance(num, int) or num <= 1 :
  4.         return False
  5.     Q = math.floor(math.sqrt(num))
  6.     for i in range(2,Q+1):
  7.         if num % i == 0:
  8.             return False
  9.     else:
  10.         return True
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-24 15:23:31 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-3-22 12:10
你需要把去掉,否则得出来的结果是错的

明白!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 09:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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