Số nguyên tố.

Một phần của tài liệu (SKKN mới NHẤT) một số BIỆN PHÁP NÂNG CAO HIỆU QUẢ CÔNG tác bồi DƯỠNG học SINH GIỎI môn TIN học BẰNG NGÔN NGỮ lập TRÌNH c++ (Trang 32 - 34)

Một số tự nhiên N (N>1) là số nguyên tố nếu N có đúng hai ước số là 1 và N. Ví dụ các số nguyên tố: 2, 3, 5, 7, 11, 13, 17, 19, 23, …

Tính chất đơn giản sau của số nguyên tố:

+ Trừ số 2 các số nguyên tố còn lại đều là số lẻ.

+ Trừ số 2, số 3 các số nguyên tố có dạng 6𝑘 ± 1 vì số có có dạng 6𝑘 ± 2

thì chia hết cho 2, số có dạng 6𝑘 ± 3thì chia hiêt cho 3.

Bài toán cơ bản:

Cho số tự nhiên N. Hãy cho biết N có phải là số nguyên tố hay không?

Dữ liệu vào: Đọc từ tệp SNT.Inp gồm một dòng duy nhất chứa số nguyên

N (1<=n<=109).

Dữ liệu ra: Ghi kết quả ra tệp SNT.Out số 1 nếu N là số nguyên tố, ngược

lại thì ghi số 0. Ví dụ

SNT.inp SNT.out

13 1

100 0

Phân tích bài toán:

Để kiểm tra số nguyên dương N(N>1) có là số nguyên tố không, ta kiểm tra xem có tồn tại một số nguyên k (2<=i<=N-1) mà i là ước của N ( N chia hết i) thì N không phải là số nguyên tố, ngược lại N là số nguyên tố.

Nếu N(N>1) không phải là số nguyên tố, ta luôn có thể tách N =i1*i2 mà (2<= i1<=i2 <=N-1). Vì i1*i1<= i1*i2=N nên i1<=√𝑁. Do đó, việc kiểm tra với i từ 2 đến N- 1 là không cần thiết, mà chỉ cần kiểm tra i từ 2 đến √𝑁. Khi đó, ta có chương trình:

Dựa vào tính chất: Trừ số 2, số 3 các số nguyên tố đều có dạng 6𝑘 ± 1. Vậy ta chỉ cần kiểm tra xem N có chia hết cho số 2, số 3 và các số có dạng 6𝑘 ± 1

Một phần của tài liệu (SKKN mới NHẤT) một số BIỆN PHÁP NÂNG CAO HIỆU QUẢ CÔNG tác bồi DƯỠNG học SINH GIỎI môn TIN học BẰNG NGÔN NGỮ lập TRÌNH c++ (Trang 32 - 34)

Tải bản đầy đủ (PDF)

(95 trang)