笔试真题之判断一个数字是否是素数(算法详解及python实现)

题:

  • explain:判断一个数字是否是素数

  • input:数字n

  • output:如果是素数返回True,否则返回False

示例:

​ 判断112272535095293是否是素数

算法思想:

  • 首先判断是不是1或2,1不是素数,2是素数
  • 其次判断是不是偶数(被2整除),偶数不是素数
  • 判断能不能被小于它的奇数整除,如果可以不是素数,直接对数开根号,然后判断能不能被3到$ \sqrt n 之 间 的 奇 数 整 除 ( 大 于 之间的奇数整除(大于 \sqrt n 的 与 小 于 的与小于 \sqrt n $一样,计算重复可以省略)
  • 其余情况是素数

代码

import math

# 判断是否是素数
def is_prime(n):
    if n < 2:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    sqrt_n = int(math.floor(math.sqrt(n)))

    for i in range(3, sqrt_n + 1, 2):
        if n % i == 0:
            return False
    return True
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值