Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main(){
- long long left = 1000000000, right = 10000000000;
- long long k = 0, i, j, n;
- bool mask [17];
- for(i = 0; i < 17; i++)
- mask[i] = false;
- for(i = (left % 2) == 0 ? 0 : 2 - (left % 2); i < 17; i += 2)
- mask[i] = true;
- for(i = (left % 3) == 0 ? 0 : 3 - (left % 3); i < 17; i += 3)
- mask[i] = true;
- for(i = (left % 5) == 0 ? 0 : 5 - (left % 5); i < 17; i += 5)
- mask[i] = true;
- for(i = (left % 7) == 0 ? 0 : 7 - (left % 7); i < 17; i += 7)
- mask[i] = true;
- long long imask [18];
- for(i = 0; i < 17; i++)
- if(!mask[i])
- imask[k] = i + left, k = k + 1;
- imask[k] = -1;
- bool mans, bans;
- for(long long n = left; n <= right; n++){
- bans = true;
- for(i = 0; i < 17; i++)
- mask[i] = false;
- for(i = 0; i < k - 1; i++){
- if(mask[i])
- continue;
- mans = false;
- for(j = i + 1; j < k; j++)
- if(__gcd(imask[i], imask[j]) > 1){
- mans = true;
- break;
- }
- if(mans){
- mask[j] = true;
- } else {
- bans = false;
- break;
- }
- }
- if(bans){
- cout << n << endl;
- break;
- }
- if(imask[0] == n){
- for(i = 0; i < k - 1; i++)
- imask[i] = imask[i + 1];
- k--;
- }
- if(((n + 17) % 2) && ((n + 17) % 3) && ((n + 17) % 5) && ((n + 17) % 7)){
- k = k + 1;
- imask[k - 1] = n + 17;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement