| struct Euler{vector<int>primes;
 vector<bool>comp;
 
 Euler(int n){
 comp.resize(n + 1);
 for(int i = 2; i <= n; i++){
 if(!comp[i]) primes.emplace_back(i);
 for(int j = 0; i * primes[j] <= n; j++){
 comp[i * primes[j]] = true;
 if(!(i % primes[j])) break;
 }
 }
 }
 };
 
 |