diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:21:45 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:35:09 +0200 |
| commit | 95341b61b030c9e1290f3b326cb7ec584f543aea (patch) | |
| tree | 852386fa04d32eb859bca11c0eff7b5ef9e50f00 /080.py | |
| parent | 571164d977f91925c4c76a292f74f5f93d09ae23 (diff) | |
Diffstat (limited to '080.py')
| -rw-r--r-- | 080.py | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -0,0 +1,55 @@ + +# schriftliches wurzelziehen: http://www.diaware.de/html/wurzel.html + +def sqrt(x, accuracy): + a = [] # vor komma + b = [] # nach komma + + groups = [] + while x > 0: + groups.append(x % 100) + x /= 100 + groups = groups[::-1] + + result = 0 + remainder = 0 + while accuracy > 0: + group = 100 * remainder + if len(groups) > 0: + group += groups[0] + + subcount = 0 + sub = 20*result + 1 + while sub < group: + group -= sub + if group < 0: + break + subcount += 1 + sub += 2 + remainder = group + if subcount == 0: + remainder *= 100 + result *= 10 + result += subcount + + if len(groups) > 0: + a.append(subcount) + del groups[0] + else: + b.append(subcount) + accuracy -= 1 + + return (a, b) + +squares = set([ x*x for x in range(11) ]) + +digitsum = 0 + +for n in xrange(100): + if n in squares: + continue + s = sqrt(n, 100) + digitsum += sum(s[0]) + sum(s[1]) + +print digitsum + |
