在 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, "不是一个邪恶数。")

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。