Đề bài
Viết chương trình C# liệt kê n số nguyên tố đầu tiên.
Định nghĩa: Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó.
Ví dụ: 2, 3, 5, 7, 11, 13, 17, … là những số nguyên tố.
Chú ý: Số 0 và 1 không phải là số nguyên tố. Chỉ có số 2 là số nguyên tố chẵn, tất cả các số chẵn khác không phải là số nguyên tố vì chúng chia hết cho 2.
Lời giải
using System; using System.Collections; namespace KienThucLapTrinhCsharp { class SoNguyenToDauTien { /** * check so nguyen to * * @author kienthuclaptrinh.net * @param n: so nguyen duong * @return 1: la so nguyen so, * 0: khong la so nguyen to */ static int isPrimeNumber(int n) { // so nguyen n < 2 khong phai la so nguyen to if (n < 2) { return 0; } // check so nguyen to khi n >= 2 int i; int squareRoot = (int) Math.Sqrt(n); for (i = 2; i <= squareRoot; i++) { if (n % i == 0) { return 0; } } return 1; } /** * Ham main */ static void Main(string[] args) { int n; Console.Write("Nhap so nguyen n = "); n = Convert.ToInt32(Console.ReadLine()); Console.Write("{0} so nguyen to dau tien la: \n", n); int dem = 0; // dem tong so nguyen to int i = 2; // tim so nguyen to bat dau tu so 2 while (dem < n) { if (isPrimeNumber(i) == 1) { Console.Write("{0} ", i); dem++; } i++; } } } }
Kết quả:
Nhập n = 10 10 so nguyen to dau tien la: 2 3 5 7 11 13 17 19 23 29