/* Yet another variant, from "Carl W.". No Email address available. */ #include #include typedef unsigned long long Integer; /* I like sugar */ Integer pi (Integer x) { Integer i, j, k, sum = 2; unsigned short int ti, tj; if (x<2) return 0; if (x<3) return 1; if (x<5) return 2; for (i = 5, ti = 4; i <= x; i += (ti = 6 - ti), sum += k) { for (j = 5, tj = 4, k = 1; j * j <= i; j += (tj = 6 - tj)) if (i % j == 0) { k = 0; break; } } return sum; }