质因子查找
核心思路:每个正整数都能以唯一的方式表示成其质因子的乘积
- 只有一个质因子的正整数为质数
- 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"))