Let's denote *d*(*n*) as the number of divisors of a positive integer *n*. You are given three integers *a*, *b* and *c*. Your task is to calculate the following sum:

Find the sum modulo 1073741824 (2<sup class="upper-index">30</sup>).
The first line contains three space-separated integers *a*, *b* and *c* (1 ≤ *a*, *b*, *c* ≤ 2000).
maxn = 2001 # Valor maximo-1 que pueden tener a, b y c por indicacion del ejercicio
mod = 2**30 #1073741824
gcd = [[0 for i  in range(maxn)] for j in range(maxn) ]# Arreglo que va a contener en la posicion i,j se encuentra en max comun divisor de (i,j)
mu = [0 for i  in range(maxn)] 							# Funcion de Mobius (Explicada en el documento adjunto)
p = [] 							# Arreglo en el que se guardaran todos los numero primos que hay hasta el 2000
marcaprimo =[0 for i  in range(maxn)] #arreglo que va a contener en el que [i] valor 1 si i es un numero primo


def init(): # Metodo que se ejecuta al inicializar el programa para poblar los arreglos: gcd, mu, p, vis
	res = 0 
	mu[1] = 1 
	for i  in range(2, maxn):
		if (marcaprimo[i] == 0):				#  -La forma de llenar el arreglo de numero primos
			p.append(i) 						# esta basada en la criba de Eratostenes dada en
			res+=1								# las conferencias de programacion de 1er anno, 
			mu[i] = -1							# 1er semestre.
		j=0										#
		while j<res and  i * p[j] < maxn:		#
			marcaprimo[i * p[j]] = 1 			#
			if i % p[j] == 0:					#  -El arreglo mu (mobius function) en la posicion "i"
				mu[i * p[j]] = 0 				# pone 0 si el numero es divisible por algun cuadrado(2^2, 3^2, ..., n^2),
				break                          # pone 1 si el numero no es divisible por cuadrados y tiene un numero par de
			else:								# factores primos(obtenidos de la descomposicion de un numero en factores primos)
				mu[i * p[j]] = -mu[i]			# pone -1 si el numero no es divisible por cuadrados y tiene un numero inmpar de factores primos
			j+=1								#
	for i in range(0,maxn):						#  -Se llenan los elementos de gcd[i][j]
		gcd[i][0] = gcd[0][i] = i 				#
	for i in range(1,maxn):						#
		for j in range(1,i+1):					#
			gcd[j][i] = gcd[i][j] = gcd[j][i % j]#


def deal(n, d, i):					#
	ans = 0 						# Metodo que calcula la sumatoria desde j = 1 hasta b/d (c/d)
	j = 1							# de b/jd (c/jd) si solo si gcm(i, jd) = 1
	while j<=n:						#
		if (gcd[i][j * d] == 1):	#
			ans += (int)(n / j) 	#
		j+=1						#
	return ans						#


init()
print("Teclee los 3 numero separados por espacio")   
a, b, c = input().split(' ')
a = int(a)
b = int(b)
c = int(c)

ans = 0
min = b
if c < b:
	min = c
#implementacion de la formula final(producto de las sumatorias)
#que se encuentra en el pdf asociado a este ejercicio
for i in range(1,a+1):
	res = 0
	for d in range(1, min+1 ):
		res +=  (mu[d] * deal(int(b / d), d, i) * deal(int(c / d), d, i) )
	ans +=  int(a / i) * res % mod
ans &= (mod-1)
print(ans)