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