在 Python 中检查一个数字是否是锶数(Strontio Numbers)、邪恶数(Evil Numbers)¶
锶数(Strontio Numbers)¶
锶数(Strontio Numbers)是四位数,当乘以 2 时,在百位和十位产生相同的数字。
例如:N = 1386
数字 N 乘以 2:1386*2=2772
2772 百位与十位都是 7,那么 1386 是一个锶数(Strontio Numbers)。
算法:
将待检测数字存储在变量 num。
将给定的数字乘以 2,将其存储在另一个变量 num2。
计算 num2 与 1000 的模运算,得到余数并将其存储在变量 a 。
将变量 a 整除以 10 以删除最后一位数字,并将其存储在变量 b。
再次将变量 b 除以 10 以删除最后一位数字,并将其存储在变量 c。
计算 b 与 10 的的模运算,获得余数并将其存储在变量 d。
使用 if 条件语句检查 c==d。
如果语句为 True,则输出给定的数字是锶数。
否则,输出给定的数字不是锶数。
num = 1001
num2 = num * 2
a = num2 % 1000
b = a//10
c = b//10
d = b % 10
if c == d:
print(num, "是一个锶数。")
else:
print(num, "不是一个锶数。")
邪恶数(Evil Numbers)¶
在数论中,邪恶数是指一个数在其二进制具有偶数个 1 的非负整数。
例如: N = 12
二进制表示 :1100,有偶数个 1,因此,12 是一个邪恶数。
N = 4
二进制表示 :100,有奇数个 1,因此,4 不是一个邪恶数。
算法:
将待检测数字存储在变量 num。
使用 bin() 函数将给定的数字转换为二进制数并将其存储在另一个变量 n。
定义变量 m,并将其值初始化为 0,用于计数。
使用 for 循环迭代二进制 n。
使用 if 条件语句检查迭代变量的值是否等于 1。
如果语句为 True,则将变量 m 的值增加 1。迭代完成后记录 1 的数量。
使用 if 条件语句检查 m 是否是偶数。
如果语句为 True,则输出给定的数字是一个邪恶数。
否则,输出给定的数字不是一个邪恶数。。
num = 9
n = bin(num)[2:]
m = 0
for i in n:
if i == '1':
m += 1
if m % 2 == 0:
print(num, "是一个邪恶数。")
else:
print(num, "不是一个邪恶数。")
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。