만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

gcd와 최단 경로

시간 제한1초메모리 제한1024 MB

요약
1부터 N까지의 정수 중 서로소 그래프에서 K까지의 최단 거리가 gcd(x, K)와 같은 x의 개수를 구합니다.
난이도

보통10점 중 7점

유형
정수론, 그래프, 수학
정답자
아직 제출이 없습니다

문제

\newcommand{\dist}{\mathrm{dist}}

1번 정점부터 NN번 정점까지 총 NN개의 정점으로 이루어진 그래프가 주어진다. 이 그래프는 다음과 같은 성질을 가진다.

1≤x,y≤N1 \leq x, y \leq N을 만족하는 서로 다른 두 정수 x,yx, y에 대하여,

  • gcd⁡(x,y)=1\gcd(x, y) = 1이면 xx번 정점과 yy번 정점을 잇는 간선이 존재한다.
  • gcd⁡(x,y)≠1\gcd(x, y) \neq 1이면 xx번 정점과 yy번 정점을 잇는 간선은 존재하지 않는다.

xx번 정점과 yy번 정점을 잇는 최단 경로의 길이를 \dist(x,y)\dist(x, y)로 정의한다. 두 정점을 잇는 경로가 없다면 \dist(x,y)=101010\dist(x, y) = 10^{10^{10}}으로 정의한다. 또한 정의에 따라 \dist(x,x)=0\dist(x, x) = 0이다.

11 이상 NN 이하의 정수 KK가 주어졌을 때, \dist(x,K)=gcd⁡(x,K)\dist(x, K) = \gcd(x, K)를 만족하는 11 이상 NN 이하의 정수 xx의 개수를 구한다.

입력

첫째 줄에 정수 KK와 NN이 공백으로 구분되어 주어진다. (1≤K≤N≤1061 \leq K \leq N \leq 10^6)

출력

첫째 줄에 조건을 만족하는 정수의 개수를 출력한다.

힌트

gcd⁡(x,y)\gcd(x, y)는 xx와 yy의 최대공약수를 의미한다.

두 정점을 잇는 경로의 길이는 경로에 포함된 간선의 개수를 의미하며, 최단 경로의 길이는 그 중 최솟값을 의미한다.

예제4

  1. 예제 1

    입력
    3 4
    
    예상 출력
    3
    
  2. 예제 2

    입력
    6 20
    
    예상 출력
    14
    
  3. 예제 3

    입력
    2 3
    
    예상 출력
    2
    
  4. 예제 4

    입력
    1 1
    
    예상 출력
    0