P. Kiểm tra số nguyên tố lớn bằng phương pháp 6k ± 1


Submit solution

Points: 50
Time limit: 1.0s
Memory limit: 256M

Problem type

Cho một số nguyên dương n (có thể rất lớn), hãy kiểm tra xem n có phải là số nguyên tố hay không.

Giới hạn

  • 2 ≤ n ≤ 109

Input

  • Một số nguyên dương n duy nhất trên một dòng.

Output

  • In ra YES nếu n là số nguyên tố.
  • In ra NO nếu n không phải là số nguyên tố.

Ví dụ

Input Output
29YES
1000000000NO
999999937YES

Gợi ý

- Mọi số nguyên tố lớn hơn 3 đều có dạng 6k ± 1.
- Không phải mọi số dạng 6k ± 1 đều là nguyên tố.
- Vì thế, bạn nên dùng vòng lặp kiểm tra ước từ 5 đến √n, tăng 6 mỗi lần: i = 5, i += 6, và kiểm tra n % i == 0 hoặc n % (i + 2) == 0.


Comments

There are no comments at the moment.