Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Take an integer n (n >= 0) and a digit d (0 <= d <= 9) as an integer. Square all numbers k (0 <= k <= n) between 0 and n.
- Count the numbers of digits d used in the writing of all the k**2. Call nb_dig (or nbDig or ...) the function taking n and d as parameters and returning this count.
- #Examples:
- n = 10, d = 1, the k*k are 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
- We are using the digit 1 in 1, 16, 81, 100. The total count is then 4.
- nb_dig(25, 1):
- the numbers of interest are
- 1, 4, 9, 10, 11, 12, 13, 14, 19, 21 which squared are 1, 16, 81, 100, 121, 144, 169, 196, 361, 441
- so there are 11 digits `1` for the squares of numbers between 0 and 25.
- '''
- def countDigitsInN(number, d):
- string1 = str(number)
- string2 = str(d)
- counter = 0
- for ch in string1:
- if ch == string2:
- counter += 1
- return counter
- def nb_dig(n, d):
- counter = 0
- for k in range(n+1):
- counter += countDigitsInN(k**2, d)
- return counter
- # MAIN FUNCTION
- a = nb_dig(5750, 0)
- b = nb_dig(11011, 2)
- c = nb_dig(12224, 8)
- d = nb_dig(11549, 1)
- print(a, b, c, d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement