1. 程式人生 > >codeforces1051B——Relatively Prime Pairs【思維,數學】

codeforces1051B——Relatively Prime Pairs【思維,數學】

B. Relatively Prime Pairs

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given a set of all integers from ll to rr inclusive, l<rl<r, (r−l+1)≤3⋅105(r−l+1)≤3⋅105 and (r−l)(r−l) is always odd.

You want to split these numbers into exactly r−l+12r−l+12 pairs in such a way that for each pair (i,j)(i,j) the greatest common divisor of ii and jj is equal to 11. Each number should appear in exactly one of the pairs.

Print the resulting pairs or output that no solution exists. If there are multiple solutions, print any of them.

Input

The only line contains two integers ll and rr (1≤l<r≤10181≤l<r≤1018, r−l+1≤3⋅105r−l+1≤3⋅105, (r−l)(r−l) is odd).

Output

If any solution exists, print "YES" in the first line. Each of the next r−l+12r−l+12 lines should contain some pair of integers. GCD of numbers in each pair should be equal to 11. All (r−l+1)(r−l+1) numbers should be pairwise distinct and should have values from ll to rr inclusive.

If there are multiple solutions, print any of them.

If there exists no solution, print "NO".

Example

input

Copy

1 8

output

Copy

YES
2 7
4 1
3 8
6 5

問在區間【R,L】內有多少對數互為質數。

一個數和他相鄰的數一定是互為質數,列舉即可。

#include <bits/stdc++.h>
using namespace std;
int main(){
    long long l,r;
    while(~scanf("%lld %lld",&l,&r)){
        cout << "YES" << endl;
        for(;l < r; l += 2){
            cout << l << " " << l + 1 << endl;
        }
    }
    return 0;
}