def pi(): N = 0 n, d = 0, 1 while True: xn = (120*N**2 + 151*N + 47) xd = (512*N**4 + 1024*N**3 + 712*N**2 + 194*N + 15) n = ((16 * n * xd) + (xn * d)) % (d * xd) d *= xd yield 16 * n // d N += 1 pi_gen = pi() import sys sys.stdout.write("pi = 3.") for i in range(2000): sys.stdout.write("0123456789ABCDEF"[pi_gen.next()]) if (((i+1) % 64) == 0): sys.stdout.write("+\n") sys.stdout.write("\n")
Standard input is empty
pi = 3.243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89+ 452821E638D01377BE5466CF34E90C6CC0AC29B7C97C50DD3F84D5B5B5470917+ 9216D5D98979FB1BD1310BA698DFB5AC2FFD72DBD01ADFB7B8E1AFED6A267E96+ BA7C9045F12C7F9924A19947B3916CF70801F2E2858EFC16636920D871574E69+ A458FEA3F4933D7E0D95748F728EB658718BCD5882154AEE7B54A41DC25A59B5+ 9C30D5392AF26013C5D1B023286085F0CA417918B8DB38EF8E79DCB0603A180E+ 6C9E0E8BB01E8A3ED71577C1BD314B2778AF2FDA55605C60E65525F3AA55AB94+ 5748986263E8144055CA396A2AAB10B6B4CC5C341141E8CEA15486AF7C72E993+ B3EE1411636FBC2A2BA9C55D741831F6CE5C3E169B87931EAFD6BA336C24CF5C+ 7A325381289586773B8F48986B4BB9AFC4BFE81B6628219361D809CCFB21A991+ 487CAC605DEC8032EF845D5DE98575B1DC262302EB651B8823893E81D396ACC5+ 0F6D6FF383F442392E0B4482A484200469C8F04A9E1F9B5E21C66842F6E96C9A+ 670C9C61ABD388F06A51A0D2D8542F68960FA728AB5133A36EEF0B6C137A3BE4+ BA3BF0507EFB2A98A1F1651D39AF017666CA593E82430E888CEE8619456F9FB4+ 7D84A5C33B8B5EBEE06F75D885C12073401A449F56C16AA64ED3AA62363F7706+ 1BFEDF72429B023D37D0D724D00A1248DB0FEAD349F1C09B075372C980991B7B+ 25D479D8F6E8DEF7E3FE501AB6794C3B976CE0BD04C006BAC1A94FB6409F60C4+ 5E5C9EC2196A246368FB6FAF3E6C53B51339B2EB3B52EC6F6DFC511F9B30952C+ CC814544AF5EBD09BEE3D004DE334AFD660F2807192E4BB3C0CBA85745C8740F+ D20B5F39B9D3FBDB5579C0BD1A60320AD6A100C6402C7279679F25FEFB1FA3CC+ 8EA5E9F8DB3222F83C7516DFFD616B152F501EC8AD0552AB323DB5FAFD238760+ 53317B483E00DF829E5C57BBCA6F8CA01A87562EDF1769DBD542A8F6287EFFC3+ AC6732C68C4F5573695B27B0BBCA58C8E1FFA35DB8F011A010FA3D98FD2183B8+ 4AFCB56C2DD1D35B9A53E479B6F84565D28E49BC4BFB9790E1DDF2DAA4CB7E33+ 62FB1341CEE4C6E8EF20CADA36774C01D07E9EFE2BF11FB495DBDA4DAE909198+ EAAD8E716B93D5A0D08ED1D0AFC725E08E3C5B2F8E7594B78FF6E2FBF2122B64+ 8888B812900DF01C4FAD5EA0688FC31CD1CFF191B3A8C1AD2F2F2218BE0E1777+ EA752DFE8B021FA1E5A0CC0FB56F74E818ACF3D6CE89E299B4A84FE0FD13E0B7+ 7CC43B81D2ADA8D9165FA2668095770593CC7314211A1477E6AD206577B5FA86+ C75442F5FB9D35CFEBCDAF0C7B3E89A0D6411BD3AE1E7E4900250E2D2071B35E+ 226800BB57B8E0AF2464369BF009B91E5563911D59DFA6AA78C14389D95A537F+ 207D5BA202E5B9C5