Số siêu nguyên tố


Submit solution

Points: 50
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

Một số tự nhiên N được gọi là siêu nguyên tố nếu bản thân nó là một số nguyên tố và tất cả các số thu được bằng cách xóa lần lượt các chữ số bên phải của nó đều là số nguyên tố.

Ví dụ: Số 317 là một số siêu nguyên tố vì: 317 là 1 số nguyên tố Xóa 1 chữ số bên phải: 31 là 1 số nguyên tố Xóa 2 chữ số bên phải: 3 là 1 số nguyên tố Cho 2 số nguyên a, b. Hãy liệt kê tất cả các số siêu nguyên tố thuộc đoạn [a, b].

Dữ liệu vào

  • Gồm một dòng ghi 2 số nguyên dương a, b (\(0<a,b<10^7\))

Kết quả

  • Liệt kê theo thứ tự tăng các số siêu nguyên tố thuộc đoạn [a, b], mỗi số trên một dòng, hoặc ghi NO trong trường hợp không có số nào thuộc đoạn đó.

Ví dụ 1:

INPUT

3 57

OUTPUT

3
5 
7
23
29
31
37
53

Comments


  • 0
    havandung09  commented on Jan. 25, 2024, 12:06 p.m.

    include<bits/stdc++.h>

    using namespace std;

    define ll long long

    bool snt(ll n) { if(n<2) return false; for(ll i=2;i<=sqrt(n);i++) if(n%i==0) return false; return true; } bool ssnt(ll n) { ll x=0; if(snt(n)==false&&n<10) return false; if(snt(n)==false) return false; while(n/10!=0) { x=n/10; if(snt(x)==false) return false; n/=10; } if(n>10&&n/10==0) return false; return true; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll a,b; cin>>a>>b; ll d=0; for(ll i=a;i<=b;i++) if(ssnt(i)) { cout<<i<<"\n"; d++; } if(d==0) cout<<"NO";

    }