tối ưu code lại chút nè
//using -std=c11
#include <stdio.h>
#include <stdbool>
#include <math.h>
bool is_prime (int n) {
if (2 == n) {
return true;
}
//So chẵn khác 2 không phải là số nguyên tố
//Số bé hơn 2 không phải là số nguyên tố
if (n < 2 || 0 == n%2) {
return false;
}
size_t end = (size_t) sqrt(n);
for (size_t i = 3; i <= end; i += 2) {
if (0 == n%i) {
return false;
}
}
return true;
}
int main() {
printf("Nhap vao so nguyen n: ");
int n;
scanf("%d", &n);
printf("\nCac so nguyen to nho hon %d la: \n", n);
if (n > 2) {
printf("2 ");
}
for (int i = 3; i < n; i += 2) {
if (is_prime(i)) {
printf("%d ", i);
}
}
}
4 Likes