Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- #include <algorithm>
- #include <cmath>
- #include <vector>
- #include <set>
- #include <map>
- #include <unordered_set>
- #include <unordered_map>
- #include <queue>
- #include <ctime>
- #include <cassert>
- #include <complex>
- #include <string>
- #include <cstring>
- #include <chrono>
- #include <random>
- #include <queue>
- #include <bitset>
- using namespace std;
- typedef long long ll;
- typedef pair<int, int> pii;
- typedef pair<ll, int> pli;
- typedef pair<ll, ll> pll;
- typedef long double ld;
- #define mp make_pair
- mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
- string getString() {
- char buf[13];
- scanf("%s", buf);
- return string(buf);
- }
- const int N = 1e6 + 4;
- char prime[N];
- int n;
- int main() {
- scanf("%d", &n);
- string s = getString();
- while (s.size() < 6) {
- s += '1';
- }
- if (s.size() == 12) {
- cout << s;
- return 0;
- }
- ll a = stoll(s);
- int ost = 12 - s.size();
- string lBord = s, rBord = s;
- ll pw = 1;
- while (lBord.size() < 12) lBord += '0', rBord += '9', pw *= 10;
- ll l = stoll(lBord), r = stoll(rBord);
- for (ll i = 2; i < N; ++i) {
- ll k = l / i;
- while (k * i < l) k++;
- while (k * i <= r) {
- if (k * i == i) {
- k++;
- continue;
- }
- prime[k*i - pw*a] = 1;
- k++;
- }
- }
- for (int i = 2; i < N; ++i) {
- if (prime[i] == 0) {
- int sz = ost - to_string(i).size();
- printf("%s", s.c_str());
- while (sz--) printf("0");
- printf("%d", i);
- return 0;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement