Problem:
 Score : 200 points    Problem Statement Today is August 24 , one of the five Product Days in a year.  A date m - d ( m is the month, d is the date) is called a Product Day when d is a two-digit number, and all of the following conditions are satisfied (here d_{10} is the tens digit of the day and d_1 is the ones digit of the day):   d_1 \geq 2  d_{10} \geq 2  d_1 \times d_{10} = m   Takahashi wants more Product Days, and he made a new calendar called Takahashi Calendar where a year consists of M month from Month 1 to Month M , and each month consists of D days from Day 1 to Day D .  In Takahashi Calendar, how many Product Days does a year have?      Constraints  All values in input are integers.  1 \leq M \leq 100  1 \leq D \leq 99         Input Input is given from Standard Input in the following format:  M  D       Output Print the number of Product Days in a year in Takahashi Calender.        Sample Input 1 15 40      Sample Output 1 10  There are 10 Product Days in a year, as follows ( m - d denotes Month m , Day d ):   4 - 22  6 - 23  6 - 32  8 - 24  9 - 33  10 - 25  12 - 26  12 - 34  14 - 27  15 - 35        Sample Input 2 12 31      Sample Output 2 5       Sample Input 3 1 1      Sample Output 3 0

Solution (Python):
import sys
stdin = sys.stdin

sys.setrecursionlimit(10 ** 7)

def li(): return map(int, stdin.readline().split())
def li_(): return map(lambda x: int(x) - 1, stdin.readline().split())
def lf(): return map(float, stdin.readline().split())
def ls(): return stdin.readline().split()
def ns(): return stdin.readline().rstrip()
def lc(): return list(ns())
def ni(): return int(stdin.readline())
def nf(): return float(stdin.readline())


m, d = li()
ans = 0
for mi in range(1, m+1):
    for di in range(1, d+1):
        if di%10 >= 2 and di//10 >= 2:
            if (di%10) * (di//10) == mi:
                ans += 1

print(ans)

Solution (Python):
m, d = map(int, input().split())

count = 0
for i in range(1, m+1):
    for j in range(1, d+1):
        a = j % 10
        b = j // 10
        if a >= 2 and b >=2:
            if i == a*b:
                count += 1
print(count)

Solution (Python):
M,D=[int(i) for i in input().split(" ")]

retval=0

for i in range(1,M+1):
    for j in range(1,D+1):
        a=j%10
        b=int(j/10)
        if i==a*b and a>1 and b>1:
            retval+=1

print(retval)

Solution (Python):
m, d = map(int, input().split())

ans = 0
for mi in range(1, m+1):
    for di in range(1, d+1):
        if di % 10 >= 2 and di // 10 >= 2 and mi == (di // 10) * (di % 10):
            ans += 1

print(ans)

Solution (Python):
M, D = map(int, input().split())
ans = 0
for m in range(1, M + 1):
    for d in range(1, D + 1):
        if d >= 22 and d % 10 >= 2 and (d // 10) * (d % 10) == m:
            ans += 1
print(ans)

Solution (Python):
M,D = map(int,input().split())

ans = 0
for m in range(1,M+1):
    for d in range(10,D+1):
        d10 = d//10
        d1 = d%10
        ans += (d1 >= 2) and (d10 >= 2) and (d1 * d10 == m)

print(ans)

Solution (Python):
import sys,collections as cl,bisect as bs
sys.setrecursionlimit(100000)
mod = 10**9+7
Max = sys.maxsize
def l(): 
    return list(map(int,input().split()))
def m(): 
    return map(int,input().split())
def onem(): 
    return int(input())
def s(x): 
    a = []
    aa = x[0]
    su = 1
    for i in range(len(x)-1):
        if aa != x[i+1]:
            a.append([aa,su])
            aa = x[i+1]
            su = 1
        else:
            su += 1
    a.append([aa,su])
    return a
def jo(x): 
    return " ".join(map(str,x))
def max2(x): 
    return max(map(max,x))
m,d = m()

su = 0

for i in range(1,m+1):
    for j in range(1,d+1):
        d1 = j%10
        d2 = j//10
        if d1 >= 2 and d2 >= 2 and d1*d2 == i:
            su += 1
print(su)

Solution (Python):

from collections import defaultdict,deque
from heapq import heappush, heappop
import sys
import math
import bisect
import random
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res
def IR(n):
    return [I() for i in range(n)]
def LIR(n):
    return [LI() for i in range(n)]
def SR(n):
    return [S() for i in range(n)]
def LSR(n):
    return [LS() for i in range(n)]

sys.setrecursionlimit(1000000)
mod = 1000000007


def A():
    m,d = LI()
    ans = 0
    for i in range(1,m+1):
        for j in range(1,d+1):
            d1 = j%10
            d2 = j//10
            if d1 >= 2 and d2 >= 2 and d1*d2 == i:
                ans += 1
    print(ans)
    return


def B():

    return


def C():

    return


def D():

    return


def E():

    return


def F():

    return


if __name__ == "__main__":
    A()

Solution (Python):
import sys
from fractions import gcd
from itertools import groupby as gb
from itertools import permutations as perm
from itertools import combinations as comb
from collections import Counter as C
from collections import defaultdict as dd
sys.setrecursionlimit(10**5)
def y(f):
    if f:
        print('Yes')
    else:
        print('No')
def Y(f):
    if f:
        print('YES')
    else:
        print('NO')

m,d = map(int,input().split())
res = 0
for i in range(1, m + 1):
    for j in range(1, d + 1):
        if len(str(j)) != 2:
            continue
        a = j // 10
        b = j % 10
        if a * b != i or a < 2 or b < 2:
            continue
        
        res += 1
print(res)

Solution (Python):
m,d=map(int,input().split())

res=0
for x in range(1,m+1):
	for y in range(20,d+1):
		if y%10>=2 and (y%10)*(y//10)==x:
			res+=1
print(res)

Solution (Python):
M,D = map(int,input().split())

ans = 0
for m in range(1,M+1):
    for d in range(1,D+1):
        a,b = divmod(d,10)
        if a>=2 and b>=2 and m==a*b:
            ans += 1
print(ans)

Solution (Python):
def main():
    import sys
    input = sys.stdin.readline
    
    m, d = map(int, input().split())
    
    ans = 0
    for i in range(1, m + 1):
        for j in range(1, d + 1):
            a = j % 10
            b = j // 10
            if a >= 2 and b >= 2 and a * b == i:
                ans += 1
    
    print(ans)
    
    return 0

main()

Solution (Python):
m, d = map(int, input().split())
ans = 0
for i in range(1, d+1):
    d1 = i%10
    d10 = i//10
    if d1 >= 2 and d10 >= 2 and d1*d10 <= m:
        ans += 1
print(ans)