using
System;
public
class
HelloWorld
{
static
int
[] twos=
new
int
[1000];
static
int
[] fives=
new
int
[1000];
static
int
sum = 0;
static
int
returnTwos(
int
val)
{
int
count = 0;
while
(val % 2 == 0 && val != 0) {
val = val / 2;
count++;
}
return
count;
}
static
int
returnFives(
int
val)
{
int
count = 0;
while
(val % 5 == 0 && val != 0) {
val = val / 5;
count++;
}
return
count;
}
static
void
solve_queries(
int
[]arr,
int
n)
{
int
type, ql, qr, x, y;
type = Convert.ToInt32(Console.ReadLine());
if
(type == 1) {
ql = Convert.ToInt32(Console.ReadLine());
qr = Convert.ToInt32(Console.ReadLine());
x = Convert.ToInt32(Console.ReadLine());
int
temp = returnTwos(x);
int
temp1 = returnFives(x);
for
(
int
i = ql - 1; i < qr; i++) {
arr[i] = arr[i] * x;
twos[i] += temp;
fives[i] += temp1;
}
}
if
(type == 2) {
ql = Convert.ToInt32(Console.ReadLine());
qr = Convert.ToInt32(Console.ReadLine());
y = Convert.ToInt32(Console.ReadLine());
int
temp = returnTwos(y);
int
temp1 = returnFives(y);
for
(
int
i = ql - 1; i < qr; i++) {
arr[i] = (i - ql + 2) * y;
twos[i] = returnTwos(i - ql + 2) + temp;
fives[i] = returnFives(i - ql + 2) + temp1;
}
}
if
(type == 3) {
ql = Convert.ToInt32(Console.ReadLine());
qr = Convert.ToInt32(Console.ReadLine());
int
sumtwos = 0;
int
sumfives = 0;
for
(
int
i = ql - 1; i < qr; i++) {
sumtwos += twos[i];
sumfives += fives[i];
}
sum += Math.Min(sumtwos, sumfives);
}
}
public
static
void
Main(
string
[] args)
{
int
n=5, m=5;
int
[] arr = { 2, 4, 3, 5, 5 };
for
(
int
i = 0; i < 1000; i++)
{
twos[i] = 0;
fives[i] = 0;
}
for
(
int
i = 0; i < n; i++) {
twos[i] = returnTwos(arr[i]);
fives[i] = returnFives(arr[i]);
}
while
(m > 0) {
solve_queries(arr, n);
m=m-1;
}
Console.WriteLine(sum);
}
}