4 ms·
I'm surprised nobody's given the obvious algorithm yet: while(i < BigInt(2).pow(10000)) ++i; Before anyone complains, this algorithm is correct and does not b
by IvyMike 14y ago
I'm surprised nobody's given the obvious algorithm yet: while(i < BigInt(2).pow(10000)) ++i;
Before anyone complains, this algorithm is correct and does not break any of the rules as far as I can tell. :)
I think the timing attack is probably what he's really looking for.
Edit: as mattvanhorn pointed out, answer() is void, but that's ok... changed to a "constant time" algorithm. :)
- mattvanhorn 14y agoanswer() has a void return, although I suppose you might be able to watch System.out to see if it worked.
- lancefisher 14y agoThe BigInteger is really big. An i7 does about 109 gigaFLOPS, or 109 operations per nanosecond. [1] Suppose we can do 1 guess per operation. There are 2^10,000 possible roots. [2] 2^10,000 / 109 nanoseconds is 5.804×10^2991 years. [3] The stars will burn out before you brute force it. [1] http://en.wikipedia.org/wiki/FLOPS http://en.wikipedia.org/wiki/FLOPS [2] http://bit.ly/ZIWkkt http://bit.ly/ZIWkkt (parens in the original link) [3] http://www.wolframalpha.com/input/?i=2%5E10%2C000+%2F+109+nanoseconds+in+years http://www.wolframalpha.com/input/?i=2%5E10%2C000+%2F+109+na...
- deleted 14y ago[deleted]