检查相邻数字绝对差之和是否为素数 (Python)


假设我们有一个数字 n。我们需要检查相邻数字对的绝对差之和是否为素数。

因此,如果输入类似于 n = 574,则输出为 True,因为 |5-7| + |7-4| = 5,这是一个素数。

为了解决这个问题,我们将遵循以下步骤:

  • num_str := 将 n 转换为字符串
  • total := 0
  • 对于 i 从 1 到 num_str 的大小 - 1,执行:
    • total := total + |num_str[i - 1] 位置的数字 - num_str[i] 位置的数字|
  • 如果 total 是素数,则
    • 返回 True
  • 返回 False

让我们看一下下面的实现,以便更好地理解:

示例代码

在线演示

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
     
def solve(n):
   num_str = str(n)
   total = 0
   for i in range(1, len(num_str)):
      total += abs(int(num_str[i - 1]) - int(num_str[i]))
        
   if isPrime(total):
      return True
   return False
      
n = 574
print(solve(n))

输入

574

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

True

更新于:2021年1月16日

浏览量:181

开启你的职业生涯

完成课程获得认证

开始学习
广告