fork download
  1. def f(a,b)
  2. n=1
  3. i=0
  4. while true do
  5. n=(n*a)%b
  6. i+=1
  7. return i if n==1
  8. end
  9. end
  10. while true do
  11. es=gets.split(" ").map{|e| e.to_i}
  12. break if es.sum==0
  13. ans=1
  14. es.each_slice(2){|a,b|
  15. ans=ans.lcm(f(a,b))
  16. }
  17. puts ans
  18. end
  19.  
Success #stdin #stdout 0.01s 6284KB
stdin
2 5 3 7 6 13
517 1024 746 6561 4303 3125
0 0 0 0 0 0
stdout
12
116640000