Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* BISMILLAHIR-RAHMANIR-RAHIM
- ____________________________________
- | |
- | SHANTO_SUST_SWE-19__029 |
- | shanto-swe029.github.io |
- |____________________________________|
- */
- #include <bits/stdc++.h>
- using namespace std;
- #define M 10000
- int marked[M/64 + 2];
- #define on(x) (marked[x/64] & (1<<((x%64)/2)))
- #define mark(x) marked[x/64] |= (1<<((x%64)/2))
- void sieve(int n) {
- for (int i = 3; i * i < n; i += 2) {
- if (!on(i)) {
- for (int j = i * i; j <= n; j += i + i) {
- mark(j);
- }
- }
- }
- }
- bool isPrime(int num) {
- return num > 1 && (num == 2 || ((num & 1) && !on(num)));
- }
- std::vector < string > primes;
- void createPrimeVector()
- {
- for(int i = 1; i < 10000; i++) {
- if(isPrime(i)) {
- primes.push_back(to_string(i));
- }
- }
- }
- int main()
- {
- sieve(10000);
- createPrimeVector();
- int T, t = 0;
- std::cin >> T;
- int n, sz = primes.size() - 1;
- string s, y;
- while(T--) {
- std::cout << "Case " << ++t << ": ";
- std::cin >> n >> s;
- bool found = false;
- for(int i = sz; i >= 0; i--) {
- if (s.find(primes[i]) != string::npos) {
- found = true;
- y = primes[i];
- break;
- }
- }
- if(found) {
- cout << y << endl;
- }
- else {
- cout << "This is a junk!" << endl;
- }
- }
- return 0;
- }
- //ALHAMDULILLAH
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement