【HJ刷题】数论

质因子查找

核心思路:每个正整数都能以唯一的方式表示成其质因子的乘积

  • 只有一个质因子的正整数为质数
  • 1没有质因子,也不作为质因子(1非质数)

优化:限定查找范围 [ 2 , n + 1 ] [2, \sqrt{n}+1] [2,n +1]

  • 因为因子是成对的
  • 能够有效地减少运算时间
# 输入的n值
n = int(input())

# 质因子:至少从2开始
# 优化:无需遍历至n本身,只需要根号n
for i in range(2, int(n**0.5)+1):
    # 针对一个可以整除的数,需要整除到这个数无法再被整除(会有好几个相同的质因子)
    while n%i == 0:
        print(i, end=" ")
        n = n//i
# 自身是质因子,要排除剩余为1的情况
if n >= 2:
    print(n)

ASCII码

  • ord:输出ASCII或Unicode码
  • chr:根据码返回对应字符串

二进制

bin():转换十进制,输出二进制的值

n = int(input())
x = str(bin(n))

print(x.count("1"))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值