import os import sys from decimal import getcontext,Decimal import math import numpy getcontext().prec = 102 squares = set(i*i for i in range(2,10)) # Partially stolen from: # http://blog.dreamshire.com/2011/07/16/project-euler-problem-80-solution/ def main(): NUM_VALS = 100 NUM_DEC = 100 total = 0 for i in xrange(2, NUM_VALS): if i in squares: continue sq = str(int(Decimal(i).sqrt()*10**99)) val_str = sq_str = sq val = sum( int(x) for x in val_str ) total += val print "Analyzed %d; total %d, part total %d, decimals %s" % (i, total, val, val_str) print total if __name__ == "__main__": sys.exit(main())