A,B = map(int,input().split())


if A>B:
    A,B = B,A

X,Y = map(int,input().split())
result = []
flag = True
if Y>=abs(X) or Y<0:
    flag = False
if flag:
    X = abs(X)
    value = X*(A//X)+Y
    while value<=B:
        if A<=value<=B:
            if result:
                flag = False
                break
            result.append(value)
        value += X
if flag and result:
    print(*result)
else:
    print('Unknwon Number')

  이 문제에서 주의해야할 점은 Y가 X보다 큰게 들어올수도 있으며, 0 미만일수도 있다.

 

그럴 경우엔 False를 해주고, A,B가 서로 반대로 들어올 수 있는것만 조심해주면 된다.

 

A~B 사이에서 생길수 있는 최소의 X,Y로 만들수 있는 수를 찾는다.

 

그리고 난뒤에 X를 늘려가면서, 2개이상의 수가 있을때에는 flag로 Unkwon Number를 출력해주면 된다.

A,B = map(int,input().split())


if A>B:
    A,B = B,A

X,Y = map(int,input().split())

X = abs(X)
left_div = A//X
right_div = (B+X)//X
result = []
flag = True
if Y>=abs(X) or Y<0:
    flag = False
if flag:
    for div in range(left_div,right_div+1):
        temp = div*X+Y
        if A<=temp<=B:
            if result:
                flag = False
                break
            else:
                result.append(temp)


if flag and result:
    print(*result)
else:
    print('Unknwon Number')

 

이건 반복문을 통해서 구현한 것이다.

+ Recent posts