ZOJ-3926-Parity Modulo P【人品题】


ZOJ-3926-Parity Modulo P


                Time Limit: 2 Seconds      Memory Limit: 131072 KB

A Mersenne prime is a prime number of the form Mn = 2n − 1.This is to say that it is a prime number which is one less than a power of two. They are named after Marin Mersenne, a French Minim friar, who studied them in the early 17th century. The first four Mersenne primes (sequence A000668 in OEIS) are 3, 7, 31, and 127.

The 37th Mersenne prime is 23021377-1, which has 909526 decimal digits. You task is to give the parity of (x mod (23021377-1)). That is to say, try to find (x mod (23021377-1)) mod 2.

Input

There are multiple test cases. The input is very huge, nearly 5 MiB. Please use the fast IO methods. The first line of input contains an integer T(T≤ 50) indicating the number of test cases. For each test case:

There is an integer x in one line. (0≤ x< 101300000)

Output

For each test case, if the result is even, then output 0, otherwise output 1.

Sample Input
5
1
2
10
1000000007
12345478431674673261786478321654125365674123451276564712356471253674517132876760

Sample Output
1
0
0
1
0

题目链接:ZOJ-3926

题目思路:人品,随机数

以下是代码:

#include
using namespace std;
char a[1300005];
int main(){
    srand( time(0) );
    int t;
    cin >> t;
    while( t-- ){
        scanf("%s", a);
        int len = strlen(a);
        if( len>909525 ){
            printf("%d\n", rand()%2);
        }
        else{
            int s = a[len-1]-'0';
            printf("%d\n", s%2);
        }
    }
    return 0;
}

你可能感兴趣的:(ZOJ)