#include #include #include void computePrimes(std::vector &primes, int64_t N) { bool *sieve = new bool[N+1]; for(int i=0; i &primes, int64_t N) { for(auto p : primes) { for(int64_t i=1; i*p <= N; i++) { result[i*p] *= -1; } int64_t pp = p*p; for(int64_t i=1; i*pp <= N; i++) { result[i*pp] = 0; } } } int main() { int64_t a,b,c,d; std::cin >> a >> b >> c >> d; int64_t N = std::max(b,d); std::vector primes; computePrimes(primes, N); int *mu = new int[N+1]; for(int64_t i=0; i