fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. vector<bool> generatePrimes(long long limit) {
  5. vector<bool> isPrime(limit + 1, true);
  6. isPrime[0] = isPrime[1] = false;
  7.  
  8. for (long long i = 2; i * i <= limit; i++) {
  9. if (isPrime[i]) {
  10. for (long long j = i * i; j <= limit; j += i) {
  11. isPrime[j] = false;
  12. }
  13. }
  14. }
  15. return isPrime;
  16. }
  17.  
  18. vector<pair<long long, long long>> findTwinPrimes(const vector<bool>& isPrime) {
  19. vector<pair<long long, long long>> twinPrimes;
  20. for (long long i = 2; i < isPrime.size() - 2; i++) {
  21. if (isPrime[i] && isPrime[i + 2]) {
  22. twinPrimes.emplace_back(i, i + 2);
  23. }
  24. }
  25. return twinPrimes;
  26. }
  27.  
  28. int main() {
  29. ios::sync_with_stdio(0);
  30. cin.tie(0);
  31. const long long LIMIT = 20000000;
  32. vector<bool> isPrime = generatePrimes(LIMIT);
  33. vector<pair<long long, long long>> twinPrimes = findTwinPrimes(isPrime);
  34.  
  35. int S;
  36. while(cin >> S){
  37. if (S >= 1 && S <= twinPrimes.size()) {
  38. cout << "(" << twinPrimes[S - 1].first << ", " << twinPrimes[S - 1].second << ")" << '\n';
  39. }
  40. }
  41. return 0;
  42. }
Success #stdin #stdout 0.15s 7660KB
stdin
Standard input is empty
stdout
Standard output is empty