Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- int main()
- {
- uint64_t mit = 10000000;
- uint64_t c[] = { 0, 0 };
- uint64_t nr = 302238514;
- for (uint64_t i = 0; i < mit; i++)
- {
- nr = (nr * 16807 + 231) % 2147483647;
- uint64_t a = nr++;
- nr = (nr * 48271 + 423) % 2147483647;
- uint64_t b = nr++;
- uint64_t k = a, l = b;
- while (k != 0)
- {
- k ^= l;
- l ^= k;
- k ^= l;
- k %= l;
- }
- l--;
- l /= (l > 0 ? l : 1);
- c[l]++;
- }
- double r = 6.0 / ((double)c[0] / (double)mit);
- double pi = r;
- for (uint64_t i = 0; i < sqrt(mit); i++)
- pi = (pi + r / pi) / 2;
- printf("%f\n", pi);
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement