Tìm số nguyên tố


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 674M

Author:
Problem type

Tìm số nguyên tố thôi nào. Thầy giáo ra đề cho các bạn sinh viên khá là khó khăn. Thầy muốn các bạn tìm ra các số nguyên tố trọng đoạn từ a đến b nhưng mà thầy lại muốn có n đoạn được tìm chứ không phải là chỉ 1 đoạn.

Lưu ý: lấy cả giá trị ở 2 đầu mút.

Input:

    Dòng đầu tiên là số tự nhiên n (0 <= n < 100)
    N dòng tiếp theo là 2 số tự nhiên a, b (0 <= a  <  b <= 10 ^ 6)

Output:

    Dãy các số nguyên tố trong đoạn a, b theo từng dòng.

Input:

3
2 5
1 9
10 50

Output:

2 3 5
1 2 3 5 7
11 13 17 19 23 29 31 37 41 43 47
EEEC

Comments


  • 0
    iamkira  commented on Nov. 26, 2023, 7:29 p.m.

    include<stdio.h>

    include<math.h>

    int checknt(int a){ if(a == 1) return 0; if(a == 2 || a == 3) return 1; else{ for(int i = 2; i <= sqrt(a);i++ ){ if(a % i == 0){ return 0; exit; } } } return 1; } int main(){ int n,a,b; scanf("%d", &n); for(int i = 1;i <= n; i++){ scanf("%d%d", &a, &b); for(int j = a; j <= b; j++){ if(checknt(j) == 1) printf("%d ", j); } printf("\n"); } return 0; } Tại sao code của em bị sai v ạ


  • 0
    TuanKiet_HUSC  commented on Nov. 18, 2023, 11:31 a.m.

    quá thời gian thì phải tối ưu code đó lại thử để giảm độ phức tạp thuật toán xuống.


  • 0
    C04L  commented on Nov. 18, 2023, 9:17 a.m.

    tại sao code của mình đến testcase #8 với #9 bị TLE nhỉ :(

    import java.util.Scanner;

    public class Main {

    public static boolean isPrime(int number) {
        if (number < 2) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }
    
    public static void findPrime(int a, int b) {
        for (int i = a; i <= b; i++) {
            if (isPrime(i)) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    
        int n = sc.nextInt();
    
        for(int i = 0; i < n; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            findPrime(a, b);
        }
    }

    }


  • 1
    TICHPX  commented on Nov. 13, 2023, 10:19 a.m.

    Số 1 bình thường không là số nguyên tố cũng không là hợp số. Trong bài này tác giả coi 1 là số nguyên tố


    • 0
      LneHe  commented on Jan. 20, 2024, 7:49 a.m.

      fix lại test mà chưa fix lại đề :<