一、数字的结构
12312321是一个八位数。
num = 12312321 digit1 = num // 10000000 # 取得第一位数字 digit2 = (num // 1000000) % 10 # 取得第二位数字 digit3 = (num // 100000) % 10 # ... digit4 = (num // 10000) % 10 digit5 = (num // 1000) % 10 digit6 = (num // 100) % 10 digit7 = (num // 10) % 10 digit8 = num % 10 # 取得最后一位数字
它是一个对称数,从左到右和从右到左读都是一样的。
def is_palindrome(n):
s = str(n)
return s == s[::-1]
print(is_palindrome(12312321)) # True
二、数字的因子
12312321有8个因子:1、3、9、1379147、4137441、12412323、36904107和12312321。
def get_factors(n):
factors = set()
for i in range(1, int(n ** 0.5) + 1):
if n % i == 0:
factors.add(i)
factors.add(n // i)
return factors
print(sorted(list(get_factors(12312321))))
三、数字的各位数之和
12312321的各位数之和是15。
def digit_sum(n):
return sum(int(d) for d in str(n))
print(digit_sum(12312321)) # 15
四、数字的反码
12312321的反码是21169406。
def bitwise_not(n):
return ~n & (2 ** n.bit_length() - 1)
def complement(n):
return bitwise_not(n) + 1
print(complement(12312321)) # 21169406
五、数字的平方根
12312321的平方根是3511。
def sqrt(n):
x = n
y = (x + 1) // 2
while y < x:
x = y
y = (x + n // x) // 2
return x
print(sqrt(12312321)) # 3511
原创文章,作者:VPTMX,如若转载,请注明出处:https://www.506064.com/n/371352.html
微信扫一扫
支付宝扫一扫