检查最小数字的第一个和最后一个数字是否在 Python 中形成质数

假设我们有一个名为digits 的数组,它只包含数字。我们必须从给定的数字中找到可能的最小数字,然后通过获取生成数字的第一位和最后一位数字来检查数字是否为质数。我们将打印数字本身,然后打印质数。

因此,如果输入类似于digits = [5,2,1,7],那么输出将是1257 是最小的数字。取第一位和最后一位的数字是17和71,都是质数。

为了解决这个问题,我们将按照以下步骤操作 -

  • digits_freq := 包含数字频率的映射

  • 数字 := 空字符串

  • 对于 0 到 9 范围内的 i,请执行

    • number := number 连接数字 i

    • 对于 0 到digits_freq[i] - 1 范围内的 j,执行

    • num := 取数字的第一位和最后一位数字

    • rev := 取数字的最后一位和第一位数字

    • 如果 num 是素数,rev 是素数,那么

      • 返回编号,编号,转数

    • 否则当 num 为素数时,则

      • 返回编号,编号

    • 否则当 rev 为素数时,则

      • 返回编号,rev

    • 否则,

      • 返回错误

    让我们看看以下实现以获得更好的理解 -

    示例代码

    from collections import defaultdict

     

    def isPrime(num):

       if num > 1:

          for i in range(2, num):

             if num % i == 0:

               return False

          return True

       return False

     

    def solve(arr):

       digits_freq = defaultdict(int)

       for i in range(len(arr)):

          digits_freq[arr[i]] += 1

     

       number = ""

       for i in range(0, 10):

          for j in range(digits_freq[i]):

             number += str(i)

           

       num = int(number[0] + number[-1])

       rev = int(number[-1] + number[0])

     

       if isPrime(num) and isPrime(rev):

          return int(number), num, rev

       elif isPrime(num):

          return number, num

       elif isPrime(rev):

          return number, rev

       else:

          return False

       

    digits = [5,2,1,7]

    print(solve(digits))

    输入

    [5,2,1,7]
    输出结果
    (1257, 17, 71)

    以上是 检查最小数字的第一个和最后一个数字是否在 Python 中形成质数 的全部内容, 来源链接: utcz.com/z/358619.html

    回到顶部