Oleg와 데이터 과학
시간 제한2초메모리 제한256 MB
구간 [L, R]의 모든 S에 대해 ((S mod Q) mod X) = (S mod X)를 만족하는 양의 정수 X의 개수를 구하거나, 무한히 많으면 infinity를 출력한다.
문제
요즘은 누구나 머신 러닝, 신경망, 빅데이터에 대해 들어 봤다. 학생 Oleg도 마찬가지로 유행을 따르고 싶어 한다. 그는 Python으로 여러 데이터셋을 열심히 분석하기 시작했다. 코워킹 스페이스에 와서 신경망에 층을 몇 개 더 쌓고, 의자에 기대어 스무디를 마시면서 컴퓨터가 기가바이트 단위의 데이터를 처리하게 하는 건 정말 멋진 일이다! 하지만 오늘은 뭔가 잘못되어서 Oleg가 여러분의 도움을 청한다.
처음에 Oleg에게는 아주 중요한 데이터를 담은 배열 가 있었다. 그 데이터는 부터 까지의 모든 정수이다. 그런 다음 Oleg는 함수 을 작성했는데, 이 함수는 각 정수를 으로 나눈 나머지로 바꾼 새 배열을 반환한다. 마지막으로 Oleg가 실수로 라는 줄을 실행해서 원래 배열 를 덮어쓰고 말았다! 이 비극의 규모를 파악하기 위해 Oleg는 다음과 같은 양의 정수 의 개수를 구하려 한다. 원래 배열 의 내용이 무엇이든, 함수 의 결과가 그 불운한 줄을 실행하지 않았을 때와 같아지는 이다.
문제가 아직 명확하지 않다면 수학적 서술은 다음과 같다. 구간 의 모든 정수 에 대해 가 성립하는 양의 정수 의 개수를 구해야 한다.
입력
한 줄에 공백으로 구분된 세 정수 , , 가 주어진다. (, )
출력
조건을 만족하는 양의 정수 의 개수가 유한하면 그 개수를 출력한다. 그렇지 않으면 infinity를 출력한다.