
# 1. 给你一个正整数长列表 L, 如 L=[1，3，5，7，9，...，10**7-1], 输出L内所有数字的乘积的长度（乘积是几位数）

# 2. 给你一个正整数长列表 L, 如 L=[2，4，6，8，10，...，10**7], 输出L内所有数字的乘积末尾0的个数

# 3. 给你一个正整数长列表 L, 如 L=[1，2，3，4，5，...，10**7],
# 判断列表内所有数字乘积的最后一个非零数字的奇偶，如果是奇数输出1，偶数输出0
import math

#1.solution
m,i=0,1					#m保存位数
while i<10**7:
	m+=math.log10(i)	#用log10将乘法转换为加法
	i+=2
print(int(m)+1)			#位数为log10的结果+1 例如100 2+1=3位

# 2.solution

i, m, n = 2, 0, 1  		# n保存余数 m保存0的个数
while i <= 10**7:
    n *= i
    while n % 10 == 0:
        n = n / 5  		# 末尾0 取决于因数2和5，2的个数明显多余5,因此除以5就行，
        				#如果除以10，遇到125这种会因为2的个数不满足而出错，与实际矛盾
        m += 1
    n = n % 10
    i += 2
print(m)

#3 soluthon
#肯定是偶数。。。除以10相当于
#除以2 除以5
#2的倍数的数肯定远大于5的倍数的数
#也就是说因数5除没了 因数2还有
i, m, n = 2, 0, 1  		
while i <= 10**7:
    n *= i
    while n % 10 == 0:
        n = n / 10 
        m += 1
    n = n % 10
    i +=1
print(n%2)