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