#include #include typedef unsigned int ui; ui mulmod ( ui a , ui b , ui m ) { return((a*b)%m); } ui expmod ( ui a , ui e , ui m ) { ui c, d; c = 1; d = a; while (e > 0) { if (e & 1) c = mulmod(c,d,m); e >>= 1; d = mulmod(d,d,m); } return c; } ui isprime ( ui n ) { ui m, s; if (n < 2) return 0; s = sqrt(n); for (m=2; m<=s; ++m) if (n % m == 0) return 0; return 1; } ui ispseudoprime ( ui n ) { return (expmod(2,n-1,n)==1); } int main () { int n, N; printf("N = "); scanf("%d",&N); for (n=3; n<=N; ++n) if ((!isprime(n))&&(ispseudoprime(n))) printf("%d\n", n); }