SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

[Bài tập C] Tìm số nguyên tố trong một phạm vi nhất định

Khi bạn mới học lập trình thì bài tập kiểm tra số nguyên tố gặp rất thường xuyên, vì nó tập cho bạn tư duy để giải quyết một bài toán. Nên trong bài này mình sẽ hướng dẫn các bạn cách viết chương trình C tìm số nguyên tố trong một phạm vi nào đó.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ví dụ cho phạm vi từ 1 đến 10, thì bạn sẽ trả về các số nguyên tố gồm: 2, 3, 5, 7. Bạn phải hiểu một chút về khái niệm số nguyên tố là gì đã, để từ đó tìm ra giải thuật.

Số nguyên tố là số chỉ chia hết cho 1 và chính nó. 2 lá số nguyên tố nhỏ nhất, không có số nguyên tố lớn nhất.

Vậy để xác định một số có phải là SNT hay không thì ta chỉ việc kiểm tra trong phạm vi từ 2 đến nó, nếu xuất hiện số nào mà nó chia hết thì không phải là SNT, ngược lại là SNT.

Bài viết này được đăng tại [free tuts .net]

Bài tập C - In ra dãy số nguyên tố

Bài tập này sẽ yêu cầu bạn nhập vào hai số num1, num2, sau đó sẽ in ra các số nguyên tố trong phạm vi này.

#include <stdio.h>
int main()
{
   int num1, num2, flag_var, i, j;
 
   /* yêu cầu người dùng nhập vào 2 số giới hạn
    * VD 1 đến 100, 10 đến 1000 vv.
    */
   printf("Nhập vào hai số nguyên dương bất kì, số đầu bé hơn số sau:");
   //Lưu hai số bằng lệnh scanf
   scanf("%d %d", &num1, &num2);
 
   //Hiện thị số nguyên tốt trong phạm vi này
   printf("SNT trong phạm vi từ %d đến %d là:\n", num1, num2);
   for(i=num1+1; i<num2; ++i)
   {
      flag_var=0;
      for(j=2; j<=i/2; ++j)
      {
         if(i%j==0)
         {
            flag_var=1;
            break;
         }
      }
      if(flag_var==0)
         printf("%d\n",i);
  }
  return 0;
}

Kết quả: Giả sử bạn nhập hai số từ 1 đến 50 thì kết quả sẽ như sau:

Nhập vào hai số nguyên dương bất kì, số đầu bé hơn số sau:
SNT trong phạm vi từ 1 đến 50 là: 1 50
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47

Trong bài này mình chỉ dùng vòng lặp chạy từ 2 đến n/2, lý do là một số chỉ chia hết từ 1 đến một nửa của nó mà thôi. Ví dụ bạn nhập số 10 thì ta chỉ cần kiểm tra từ 2 đến 5 là được.

Cùng chuyên mục:

Cách điều khiển Touch Sensor trong Arduino

Cách điều khiển Touch Sensor trong Arduino

Cách giao tiếp Keypad với màn hình LCD trong Arduino

Cách giao tiếp Keypad với màn hình LCD trong Arduino

Cách điều khiển Keypad trong Arduino

Cách điều khiển Keypad trong Arduino

Cách điều khiển màn hình LCD trong Arduino

Cách điều khiển màn hình LCD trong Arduino

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Hướng dẫn điều khiển cảm biến ánh sáng trong Arduino

Cách điều khiển công tắc (switch) trong Arduino

Cách điều khiển công tắc (switch) trong Arduino

Cách điều khiển button trong Arduino

Cách điều khiển button trong Arduino

Hướng dẫn điều khiển đèn LEG bằng Touch Sensor

Hướng dẫn điều khiển đèn LEG bằng Touch Sensor

Hướng dẫn điều khiển đèn LEG bằng nút nhấn trong Arduino

Hướng dẫn điều khiển đèn LEG bằng nút nhấn trong Arduino

Hướng dẫn điều khiển đèn LEG RGB trong Arduino

Hướng dẫn điều khiển đèn LEG RGB trong Arduino

Hướng dẫn bật tắt đèn LED trong Arduino

Hướng dẫn bật tắt đèn LED trong Arduino

Viết chương trình Arduino đầu tiên

Viết chương trình Arduino đầu tiên

Các kiến thức cần biết trước khi học lập trình với Arduino

Các kiến thức cần biết trước khi học lập trình với Arduino

Hướng dẫn cài đặt và sử dụng Arduino IDE

Hướng dẫn cài đặt và sử dụng Arduino IDE

Arduino là gì? Ứng dụng của Arduino trong cuộc sống

Arduino là gì? Ứng dụng của Arduino trong cuộc sống

Cách nhân hai số trong ngôn ngữ C

Cách nhân hai số trong ngôn ngữ C

Cách cộng hai số nguyên trong C

Cách cộng hai số nguyên trong C

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Bài này sẽ tổng hợp hơn 1000 bài tập C / C++ có lời giải…

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cstdio C / C++

Top