#include #include unsigned long fsqrt(unsigned long n) { return (unsigned long)sqrt(n); } unsigned long isqrt(unsigned long n) { unsigned int a; for (a = 0; n >= (2 * a) + 1; n -= (2 * a++) + 1); return a; } int main(void) { unsigned long i = 0; while (i++ < 0xffffff) { if (fsqrt(i) != isqrt(i)) { printf("fsqrt(%lu)=%lu isqrt(%lu)=%lu\n", i, fsqrt(i), i, isqrt(i)); } } printf("done.\n"); return 0; }