728x90
반응형
Java
import java.lang.*;
class Solution {
public long solution(long w, long h) {
long answer = w * h;
long w2 = w;
long h2 = h;
long greatest = 1;//최대 공약수 저장
for(int i = 2; i <= h2 || i <= w2;){//w2와 h2를 최대 공약수로 나눈 값으로 저장
if(h2 % i == 0 && w2 % i == 0){
h2 /= i;
w2 /= i;
greatest *= i;
}else
i++;
}
answer -= (h2 + w2 - 1) * greatest;
return answer;
}
}
Python
import math
def solution(w,h):
answer = w * h
minNum = min(w, h)
maxNum = max(w, h)
greatest = 1;#최대공약수
i = 2
while minNum >= i:#최대 공약수 구하기
if minNum % i == 0 and maxNum % i == 0:
minNum = minNum // i
maxNum = maxNum // i
greatest *= i
else:
i += 1
answer -= (minNum + maxNum - 1) * greatest
return answer
728x90
반응형