Số Carmichael

Xem dưới dạng PDF

Gửi bài giải

Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 128M

Tác giả:
Kiểu bài tập

Một chủ đề quan trọng hiện nay trong khoa học máy tính là mật mã. Một số thuật toán mật mã mà Mr.T đang triển khai có sử dụng các số nguyên tố lớn. Tuy nhiên, kiểm tra xem một số lớn có phải là số nguyên tố không dễ dàng như vậy. Hiện có một số thử nghiệm xác suất mang lại độ tin cậy cao với chi phí thấp. Một trong số đó là Phép thử Fermat. Cho \(a\) là một số ngẫu nhiên trong khoảng \(2\) đến \(n-1\). \(N\) là số nguyên tố nếu:

\(a^n\) \(mod\) \(n=a\)

Nếu một số vượt qua bài kiểm tra Fermat nhiều lần thì đó là số có xác suất rất cao là số nguyên tố.

Thật không may, có tin xấu. Một số số không phải số nguyên tố vẫn vượt qua bài kiểm tra Fermat với mọi số nhỏ hơn chính nó. Những con số này được gọi là số Carmichael.

Trong bài toán này, bạn được yêu cầu viết một chương trình để kiểm tra xem một số đã cho có phải là số Carmichael hay không.

Input

  • Đầu vào sẽ bao gồm một nhiều dòng, mỗi dòng chứa một số dương nhỏ \(n\) \((2 \lt n \lt 65000)\).
  • Nếu \(n=0\) có nghĩa là kết thúc bộ test

Output

  • Với mỗi số được nhập vào, bạn phải in ra xem đó có phải là số Carmichael hay không (\(1\) là phải, \(0\) là không phải), như minh họa trong đầu ra mẫu.

Example

Sample input

1729
17
561
1109
431
0

Sample output

1
0
1
0
0

Nhận xét

Không có ý kiến tại thời điểm này.