Liệt kê số nguyên tố

Xem PDF

Điểm: 800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho số nguyên dương \(n\), hãy liệt kê các số nguyên tố trong phạm vi từ \(1\) tới \(n\).

Input

  • Vào từ thiết bị nhập chuẩn số nguyên dương \(n \leq 10^6\).

Output

  • Ghi ra thiết bị xuất chuẩn các số nguyên tố tìm được theo thứ tự tăng dần, mỗi số một dòng.

Example

Test 1

Input
10
Output
2
3
5
7

Bình luận

  • tranduyhieu123 8:08 p.m. 1 Tháng 4, 2025

    include <bits/stdc++.h>

    using namespace std;
    int kiem_tra(int n) {
    if (n < 2) {
    return 0;
    }
    if (n == 2) {
    return 1;
    }
    if (n % 2 == 0) {
    return 0;
    }

    int sqrt_n = (int) sqrt(n);
    for (int i = 3; i <= sqrt_n; i += 2)
        if (n % i == 0) return 0;
    return 1;
    

    }
    int main(){
    int n;
    cin >> n;
    for(int i = 2 ; i < n ; i++){
    if(kiem_tra) cout << i << "\n";
    }
    return 0;
    }
    cứu tôi bài này với !!!!!!

    • ngocuyencoder 4:59 p.m. 17 Tháng 11, 2024

      solution python

      Python
      def a(l):
          p = [False] * (l + 1)
          s = int(l**0.5) + 1  
          for x in range(1, s):
              for y in range(1, s):
                  n = 4 * x**2 + y**2
                  if n <= l and (n % 12 == 1 or n % 12 == 5):
                      p[n] = not p[n]
                  n = 3 * x**2 + y**2
                  if n <= l and n % 12 == 7:
                      p[n] = not p[n]
                  n = 3 * x**2 - y**2
                  if x > y and n <= l and n % 12 == 11:
                      p[n] = not p[n]
          for n in range(5, s):
              if p[n]:
                  for k in range(n**2, l + 1, n**2):
                      p[k] = False
      
          r = [2, 3] + [n for n in range(5, l + 1) if p[n]]
          return r
      b = int(input())
      nt = a(b)
      for i in nt:
          print(i)
      

      • trananhminh_lvt_k39 7:39 p.m. 1 Tháng 11, 2024

        bài này chỉ cần sàng nguyên tố nhỉ