NGTO - Phân tích thành tổng hai số nguyên tố

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 0.5s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho một số nguyên dương ~n~. Bạn hãy đếm số cách phân tích số ~n~ thành tổng hai số nguyên tố khác nhau ~u,v\ (u< v)~.

Input

  • Số nguyên dương ~n\ (2≤n≤3×10^5)~.

Output

  • Dòng đầu ghi một số nguyên ~k~ là số cách phân tích thỏa mãn điều kiện đề bài. Nếu không có cách phân tích ghi số ~0~.
  • Trường hợp ~k>0, k~ dòng tiếp theo, dòng thứ ~i~ ghi hai số ~u_i,v_i\ (u_i< v_i)~ là cách phân tích thứ ~i~ theo yêu cầu: ~u_1< u_2<…< u_k~.

Sample

Input #1
82
Output #1
4
3 79
11 71
23 59
29 53
Input #2
11
Output #2
0

Hint

  • Số ~82~ có ~4~ cách phân tích ~82=3+79=11+71=23+59=29+53~. Cách phân tích ~82=41+41~ không được tính vì ~u=v~.
  • Số ~11~ không phân tích được.

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    Viet0601  đã bình luận lúc 24, Tháng 3, 2024, 13:59

    include<bits/stdc++.h>

    using namespace std; using ll= long long ; int n=1000000; int nt[1000000]; void sang() { for(int i=0;i<n;i++) { nt[i]=1;

    } nt[0]=nt[1]=0; for(int i=2;i<sqrt(n);i++) { if(nt[i]==1) { for(int j =i*i;j<n;j+=i) { nt[j]=0; } } } } int main() { sang(); int x; cin>>x; int dem=0; for(int i=2;i<x/2 + 1;i++) { if(nt[i] && nt[x-i] && i!= x-i) { dem++; } } cout<<dem<

    }


  • -1
    ntm_mtn  đã bình luận lúc 25, Tháng 10, 2023, 16:32

    ad ơi cho e xin editorial bài này đc ko ạ