Advertisement
Eastkap

Euler 17

Dec 12th, 2014
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.97 KB | None | 0 0
  1. sum=0
  2. def unity (n):
  3.     if n[0]== "1" or n[0]== "2" or n[0]== "6":
  4.         return 3
  5.     elif n[0]== "3" or n[0]== "7" or n[0]== "8":
  6.         return 5
  7.     elif n[0]== "4" or n[0]== "5" or n[0]== "9":
  8.         return 4
  9.     else:
  10.         return 0
  11.  
  12. def teen (n):
  13.     if n[0]=="0":
  14.         y=3+unity(str(int(n)-(int(n[0])*10)))
  15.         return y
  16.     elif n[1]=="0":
  17.         return 3
  18.     elif n[1]=="1" or n[1]=="2":
  19.         return 6
  20.     elif n[1]== "3" or n[1]=="4" or n[1]=="9":
  21.         return 8
  22.     elif n[1]== "5" or n[1]=="6":
  23.         return 7
  24.     elif n[1]=="7" or n[1]=="8":
  25.         return 9
  26.  
  27. def tenth(n):
  28.     if len(n)==1:
  29.         return unity(n)
  30.     elif n[0]=="1":
  31.          y= teen(n)
  32.          return y
  33.     elif n[0]=="0":
  34.         y= unity(str(int(n)-(int(n[0])*10)))
  35.         return y
  36.     elif n[0]=="2" or n[0]=="3" or n[0]=="9" or n[0]=="8":
  37.         y=unity(n[1])
  38.         y=int(y)
  39.         return 6+y
  40.     elif n[0]=="4" or n[0]=="5" or n[0]=="6":
  41.         y=5+unity(str(int(n)-(int(n[0])*10)))
  42.         return y
  43.     elif n[0]=="7":
  44.         y=7+unity(str(int(n)-(int(n[0])*10)))
  45.         return y
  46.     elif n[0]=="0" and n[1]!="0":
  47.         y=3+unity(str(int(n)-(int(n[0])*10)))
  48.         return y
  49.        
  50. def hundred (n):
  51.     if n[1]=="0" and n[2]=="0":
  52.         return 10
  53.     elif n[0]=="1" or n[0]=="2" or n[0]=="6":
  54.         x=13+tenth(str(int(n)-(int(n[0])*100)))
  55.         return x
  56.     elif n[0]=="3" or n[0]=="7" or n[0]=="8":
  57.         x=15+tenth(str(int(n)-(int(n[0])*100)))
  58.         return x
  59.     elif n[0]=="4" or n[0]=="5" or n[0]=="9":
  60.         x=14+tenth(str(int(n)-(int(n[0])*100)))
  61.         return x
  62.  
  63. def big (n):
  64.     if len(n)==4:
  65.         sum=11
  66.         return sum
  67.     elif len(n)==3:
  68.         sum=hundred(n)
  69.         return sum
  70.     elif len(n)==2:
  71.         sum=tenth(n)
  72.         return sum
  73.     elif len(n)==1:
  74.         sum=unity(n)
  75.         return sum
  76.  
  77.  
  78. for i in range (1,1001,1):
  79.     a=str(i)
  80.     sum=sum+big(a)
  81.     print(i)
  82. print(sum-1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement