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

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


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

ดังนั้น หากอินพุตมีค่าเท่ากับ n =13 เอาต์พุตจะเป็น True เนื่องจาก 13 เป็นจำนวนเฉพาะ และ 31 เป็นจำนวนเฉพาะด้วย

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • n :=n เป็นสตริง
  • ทำการวนซ้ำขนาด n ครั้ง ทำ
    • ถ้า n ไม่ใช่จำนวนเฉพาะ แล้ว
      • คืนค่าเท็จ
    • n :=n[จากดัชนี 1 ถึงปลาย] เชื่อมอักขระตัวแรกของ n
  • คืนค่า 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