Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าการหมุนทุกรูปของตัวเลขเป็นจำนวนเฉพาะหรือไม่ใน Python

สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าการหมุนทุกรูปของ n เป็นจำนวนเฉพาะหรือไม่

ตัวอย่าง

หากอินพุตคือ n = 13 ผลลัพธ์จะเป็น True เนื่องจาก 13 เป็นจำนวนเฉพาะ และ 31 ก็เป็นจำนวนเฉพาะเช่นกัน

ขั้นตอนการแก้ปัญหา

  1. n := n เป็นสตริง
  2. ลูปจำนวนครั้งเท่ากับความยาวของ n:
    • ถ้า n ไม่ใช่จำนวนเฉพาะ ให้คืนค่า False
    • n := n[จากดัชนี 1 ถึงสุดท้าย] ต่อ ตัวอักษรแรกของ n
  3. คืนค่า True

การใช้งาน

class Solution:
    def solve(self, n):
        def is_prime(n):
            if n <= 1:
                return False
            return not any(n % 2 == 0 or n % i == 0 for i in range(3, int(n**0.5) + 1, 2))
        n = str(n)
        for _ in range(len(n)):
            if not is_prime(int(n)):
                return False
            n = n[1:] + n[0]
        return True

ob = Solution()
print(ob.solve(13))

อินพุต

13

เอาต์พุต

True