desperateboy12344's blog

By desperateboy12344, history, 13 months ago, In English

Like the title stated. I really need help with this problem. It's in my training camp for my country's national olympiad.
I'll simplify it for you guys.
Given three numbers X,Y,Z (X,Y,Z <= 9000),
Count all divisors of all number that is a product from three numbers a,b,c such that (a <= X,b <= Y, c <= Z) (a divisor and be counted again and again) modulo 2^30
To be more clear,a simple algorithm to solve it is:
res = 0
for i = 1...X
for j = 1...Y
for k = 1...Z
res = res + count_divisors(i*j*k)
count_divisors is a function that counts all positive divisors of an integer
It's obviously too slow
Find res modulo 2^30
Time limit is 2 seconds.
It's quite ridiculous guys. Thank you for any help!
Example : X = 2,Y = 2, Z = 2
the numbers are : 1 , 2 , 2 , 2 , 4 , 4 , 4 , 8
total divisors are 20.

  • Vote: I like it
  • 0
  • Vote: I do not like it

| Write comment?