Woburn Challenge 2001
6) Mission Impossible 3
Well, as it turns out, James Bond successfully escaped the CBS attack helicopter and was debriefed at IMF headquarters in Langley, VA. Unfortunately, the only information he was able to retrieve was 3 numbers (R, a, b) that would allow an IMF team to hack into CBS computers to obtain the name of the last Survivor. CBS computers are encrypted using 1 numerical key that is not divisible by either a or b (note that if it was divisible, it would make cracking it substantially easier). It also turns out that R is the maximum number that they could have used for the encryption key.
With only this limited information, the only way to hack into the computer would be to determine the decryption key for each possible encryption key and try each of the decryption keys individually to see if they worked. Now keep in mind that all secure computers are placed in rooms with 50 ft ceilings and aerial access through ventilation ducts, and so the IMF insertion will undoubtedly involve Ethan Hunt hanging upside down from the roof of this room typing on the computer. A man can only hang upside down so long before blood pools in his brain causing loss of consciousness, so he can only try a limited number of decryption keys before he goes unconscious.
The question is this: how many decryption keys can we rule out? i.e. how many positive numbers ≤ R are divisible by either a or b (the more keys we can rule out, the fewer keys need to be tried)
The first line contains T, the number of test cases.
Each of the remaining T lines is a test case consisting of the three positive integers R a b on a line.
R, a, b ≤ 32,767
Bonus: R, a, b ≤ 2,000,000,000
For each input, print the number of positive integers less than or equal to R that are divisible by a or b.
3 50 3 21 63 6 8 34 8 15
16 15 6
Point Value: 10 (partial)
Time Limit: 2.00s
Memory Limit: 16M
Added: Nov 23, 2008
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3