#include extern unsigned long primetab[]; extern unsigned long nprimetab; unsigned long long pi(unsigned long long x) { if(x >= 20000000) return 0; // blow up, but genteelly unsigned long * ptr = std::lower_bound(primetab, primetab + nprimetab, (unsigned long) x); return ptr - primetab; }