Advertisement
Guest User

pibbpbench

a guest
Nov 5th, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. from math import floor
  2. import time
  3.  
  4. def n16modk(n, k):
  5.     r = 1
  6.     t = 1
  7.     while t <= n:
  8.         t *= 2
  9.     while True:
  10.         if n >= t:
  11.             r = (16 * r) % k
  12.             n = n - t
  13.         t = t / 2      
  14.         if t < 1:
  15.             break
  16.         r = (r * r) % k
  17.     return r
  18.  
  19. def d16Sj(d, j):
  20.     d16sj = 0.0
  21.     for k in xrange(0, d + 1):
  22.         d16sj += n16modk(d - k, 8 * k + j) / (float)(8 * k + j)
  23.     return d16sj - floor(d16sj)
  24.  
  25. jegy = 0
  26. start = time.time()
  27. for d in xrange(100000000, 100000001):
  28.     d16Pi = 0.0
  29.     d16S1t = d16Sj (d, 1)
  30.     d16S4t = d16Sj (d, 4)
  31.     d16S5t = d16Sj (d, 5)
  32.     d16S6t = d16Sj (d, 6)
  33.     d16Pi = 4.0 * d16S1t - 2.0 * d16S4t - d16S5t - d16S6t
  34.     d16Pi = d16Pi - floor (d16Pi)
  35.     jegy = int(floor(16.0 * d16Pi))
  36.  
  37. print jegy
  38. print time.time() - start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement