
k와 d의 최대값이 백만이기 때문에 가능한 경우의 수를 전부다 구하거나 저장하면 시간초과.
0부터 k간격으로 x좌표를 늘려가면서 가능한 좌표의 개수만 구해서 더해나간다. 각 x좌표에서 최대로 가질 수 있는 y좌표의 값을 구한 후 k로 나눠주면 된다. y좌표도 k간격으로 나뉘기 때문이다.

def solution(k, d):
answer = 0
for x in range(0, d+1, k):
answer += int((d**2-x**2)**0.5)//k + 1
return answer