#include #include typedef unsigned long long int64; int64 expmod(int64 a, int64 b, int64 n) { int64 r[32], ret; int i; r[0] = 1; r[1] = a; ret = r[b&1]; b = b >> 1; for(i = 2; b; i++, b = b >> 1) { r[i] = (r[i-1] * r[i - 1]) % n; if(b&1) ret = (ret * r[i]) % n; } return ret; } int p[4] = {2,3,5,7}; int prime(int64 n) { int64 r[32], d, s; int i, j, w; if(n < 2) return 0; for(i = 0; i < 4; i++) { if(p[i] == n) return 1; if(n % p[i] == 0) return 0; } d = n - 1; s = 0; do { s++; d = d >> 1; } while(!(d&1)); for(i = 0; i < 4; i++) { w = 0; r[0] = expmod(p[i], d, n); if(r[0] == 1 || r[0] == n-1) w = 1; for(j = 1; !w && j < s; j++) { r[j] = (r[j-1]*r[j-1]) % n; if(r[j] == n-1) w = 1; } if(!w) return 0; } return 1; } int main() { int t,n,m; scanf("%i",&t); int i; for(i=0;i