long long mulmod(long long a, long long b, long long m) { unsigned long long a_ = (unsigned long long)a; unsigned long long b_ = (unsigned long long)b; unsigned long long r = 0; for (; b>0; b>>=1, a=(a+a)%m) if (b&1) r = (r+a)%m; return (long long)r; } long long powmod(long long a, long long b, long long m) { long long r = 1; for (; b>0; b>>=1, a=mulmod(a, a, m)) if (b&1) r = mulmod(r, a, m); return r; } bool is_prime(long long n) { if (n==1) return false; if (n==2) return true; if (n%2==0) return false; long long d = n-1; long long s = 0; while (d%2==0) { d /= 2; s++; } // https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test#Testing_against_small_sets_of_bases long long A[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}; for (long long a: A) { if (a>=n) break; bool composite = powmod(a, d, n)!=1; long long t = d; for (int i=0; i using namespace std; int main() { int n; cin>>n; for (int i=0; i>x; cout<