Tìm Số nguyên tố là một bài toán kinh điển trong lập trình. Vậy số nguyên tố là gì ? Thường số nguyên tố sẽ được định nghĩa như sau; số nguyên tố là số tự nhiên lớn hơn 1, chỉ có 2 ước số là 1 và chính nó.
Có nhiều cách tìm số nguyên tố. Chúng ta cùng làm rõ vấn đề này với oktot nhé.
Ví dụ 1: Viết chương trình kiểm tra số nguyên nhập vào từ bàn phím có phải là số nguyên tố hay không?
Thuật toán:
Đếm số ước của n.
So sánh số ước của n với 2. Nếu số ước bằng 2 thì đó là số nguyên tố, ngược lại không phải số nguyên tố
Code C/C++
#include <stdio.h>
#include <conio.h>
void main()
{
int n, dem=0;
/*Nhập vào giá trị nguyên lớn hơn 2 cần kiểm tra có phải là số nguyên tố*/
do
{
printf("\n Nhap vao so nguyen N: ");
scanf("%d", &n);
}while(n<=2);
for (int i=1; i<=n; i++)
{
if (n%i==0)
{
dem ++;
}
}
if (dem==2)
{
printf("Day la so nguyen to");
}
else
{
printf("Day khong phai la so nguyen to");
}
getch();
}
Ví dụ 2: Viết chương trình tìm số nguyên tố nhỏ hơn N
Code C/C++
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i, j;
printf("\nNhap gia tri N : ");
scanf("%d", &n);
printf("\nCac so nguyen to nho hon n la : ");
for (i=2; i<n; i++)
{
for (j=2; j<i; j++)
if (i%j == 0)
break;
if (j == i)
printf("%d ", i);
}
getch();
}
Ví dụ 3: Viết Hàm tìm số nguyên tố
- Input: 01 số nguyên dương n (kiểu int)
- Output: có hoặc không, đúng hoặc sai, true hoặc false => kiểu trả về là int (1: đúng, 0: sai)
- Thuật toán:
Kiểm tra trong khoảng từ 2 đến n -1. nếu n chia hết một số bất kỳ nào đó thì h không phải là số nguyên tố, ngược lại n là số nguyên tố.
Code C/C++
Cách 1:
// hàm kiểm tra xem có phải là số nguyên tố hay không
int KTSoNT(int n)
{
if (a<=1)
return 0;
for(int i = 2 ; i<n ; i++)
if(n%i==0)
return 0; // không phải SNT trả về 0
return 1; // là SNT trả về 1
}
Cách 2:
bool KTSoNT(int n)
{
if (n < 2)
return false;
for (int i = 2; i<= n/2; ++i)
if (n % i == 0)
return false;
return true;
}
Xem thêm Nhập xuất mảng một chiều






![[ASP.NET Core MVC] – Hướng dẫn tạo View p3](https://sinhvientot.net/wp-content/uploads/2019/01/Bitmap-MEDIUM_ASP.NET-Core-MVC-Logo_2colors_Square_Boxed_RGB-218x150.png)


















