Загрузка данных


#include <iostream>
#include <vector>

using namespace std;

int suma_cyfr(int n) {
    int suma = 0;
    while (n > 0) {
        suma += n % 10;
        n /= 10;
    }
    return suma;
}

int suma_binarna(int n) {
    int suma = 0;
    while (n > 0) {
        suma += n & 1;
        n >>= 1;
    }
    return suma;
}

bool czy_pierwsza(int x) {
    if (x < 2) return false;
    for (int i = 2; i * i <= x; i++) {
        if (x % i == 0) return false;
    }
    return true;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    int a, b;
    if (!(cin >> a >> b)) return 0;
    
    vector<bool> is_prime(b + 1, true);
    is_prime[0] = is_prime[1] = false;
    for (long long p = 2; p * p <= b; p++) {
        if (is_prime[p]) {
            for (long long i = p * p; i <= b; i += p)
                is_prime[i] = false;
        }
    }
    
    int licznik = 0;
    for (int i = a; i <= b; i++) {
        if (is_prime[i]) {
            if (czy_pierwsza(suma_cyfr(i))) {
                if (czy_pierwsza(suma_binarna(i))) {
                    licznik++;
                }
            }
        }
    }
    
    cout << licznik << "\n";
    
    return 0;
}