#include #include typedef long long ll; bool is_prime[500005]; ll list_prime[500005]; ll calc_prime(ll n); int main() { ll n; ll m; ll ans = 0; scanf("%lld", &n); m = calc_prime(n); for (ll i = 0; i < m; i++) { for (ll j = i; j < m; j++) { ll p = list_prime[i]; ll r = list_prime[j]; ll q = r * r - p; if (q >= 0 && q <= n && is_prime[q]) { if (i == j) { ans++; } else { ans += 2; } } } } printf("%lld\n", ans); return 0; } ll calc_prime(ll n) { ll cnt = 0; for (ll i = 2; i <= n; i++) { is_prime[i] = true; } for (ll i = 2; i <= n; i++) { if (is_prime[i]) { list_prime[cnt] = i; cnt++; for (ll j = i + i; j <= n; j += i) { is_prime[j] = false; } } } return cnt; }