Giả sử chúng ta có một số n, chúng ta phải kiểm tra xem n có phải là một thừa số nguyên tố hay không. Như chúng ta biết, một số được cho là một số nguyên tố khi nó là một số nguyên tố nhỏ hơn một hoặc nhiều hơn một giai thừa của bất kỳ số nào.
Vì vậy, nếu đầu vào là n =719, thì đầu ra sẽ là True là 719 =720 - 1 =6! - 1
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu num không phải là số nguyên tố, thì
- trả về Sai
- giai thừa:=1, i:=1
- while giai thừa <=num + 1, thực hiện
- giai thừa:=giai thừa * i
- nếu num + 1 giống với giai thừa hoặc num - 1 giống với giai thừa, thì
- trả về True
- i:=i + 1
- trả về Sai
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
from math import sqrt def isPrime(num) : if num <= 1: return False if num <= 3 : return True if num % 2 == 0 or num % 3 == 0: return False for i in range(5, int(sqrt(num)) + 1, 6) : if num % i == 0 or num % (i + 2) == 0: return False return True def solve(num) : if not isPrime(num) : return False factorial = 1 i = 1 while factorial <= num + 1: factorial *= i if num + 1 == factorial or num - 1 == factorial : return True i += 1 return False num = 719 print(solve(num))
Đầu vào
719
Đầu ra
True