Problem:


  MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

ニュータウン

会津県では人口増加のためにニュータウンを作ることにしました。そのために、新たに長方形の土地を開拓し、この土地を余すところなく、すべて同じ大きさの正方形からなる区画に区切ることを決めました。この土地の整備には、区画数に比例した費用がかかりますが、県としてはこの費用を最小にしたいと考えています。

新たに開拓した土地の東西方向と南北方向の長さと、１区画当たりの整備費用が与えられたとき、すべての区画を整備したときにかかる、最小の整備費用を求めるプログラムを作成せよ。 

Input

入力は以下の形式で与えられる。 

W H C

入力は１行であり、新たに開拓した土地の東西方向の長さ W (1 ≤ W ≤ 1000)と南北方向の長さ H (1 ≤ H ≤ 1000)、区画当たりの整備費用 C (1 ≤ C ≤ 1000)が整数で与えられる。

Output

土地を整備するために必要な最小の費用を１行に出力する。

Sample Input 1

10 20 5

Sample Output 1

10

２個の正方形で土地を余すところなく区切ることができ、１区画当たりの整備費用が５なので、１０と
出力する。 

Sample Input 2

27 6 1

Sample Output 2

18

１８個の正方形で土地を余すところなく区切ることができ、１区画当たりの整備費用が１なので、１８と出力する。 



Sample input:
10 20 5


Sample output:
10

Submission status: Accepted

Solution code:
import math
W,H,C=map(int,input().split())

sikaku=math.gcd(W,H)
print(C*(W*H)//(sikaku*sikaku))

Submission status: Accepted

Solution code:
W,H,C=map(int,input().split())
mini=10**10
for x in range(1,min(H,W)+1,1):
    if ( H % x ) or ( W % x ):
        continue
    mini=min(mini,(H//x)*(W//x)*C)
print(mini)

Submission status: Accepted

Solution code:
def gcd(a, b):
    if b == 0:
        return a
    return gcd(b, a % b)

w, h, c = [int(num) for num in input().split()]
g = gcd(w, h)
print((w // g) * (h // g) * c)

Submission status: Accepted

Solution code:
w, h, c = map(int, input().split())
p, q = max(w, h), min(w, h)
while True:
    if p % q == 0:break
    else:p, q = q, p % q
print((w // q) * (h // q) * c)

Submission status: Accepted

Solution code:
import fractions 
A, B, C = [int(k) for k in raw_input().split(' ')]
print(C * ((A * B)/ (fractions.gcd(A, B) ** 2 )))

Submission status: Accepted

Solution code:
from math import gcd
w, h, c = map(int, input().split())
print(w * h // gcd(w, h) // gcd(w, h) * c)

Submission status: Accepted

Solution code:
def gcd(x,y):
    if x > y:
        x,y = y,x

    while x!= 0:
            y = y % x
            x, y = y, x
    return y

w,h,c = map(int,input().split())
n = w * h / gcd(w,h)**2
print(int(c * n))

Submission status: Accepted

Solution code:
import math

w,h,c=map(int,input().split())
g=math.gcd(w,h)
print(int((w/g)*(h/g)*c))

Submission status: Accepted

Solution code:
import math#mathモジュールをインポートする
a,b,c = map(int,input().split())#標準入力
i = (math.gcd(a,b))#最大公約数
a *= b#開拓した面積を求める
i *= i#正方形の面接を求める
print(int(a / i * c))#正方形のに開拓費用をかけた数を出力する

Submission status: Accepted

Solution code:
import math
a,b,c = map(int,input().split())
print(a*b//(math.gcd(a,b)**2)*c)

Submission status: Accepted

Solution code:
import math

w, h, c = [int(i) for i in input().split()]
g = math.gcd(w, h)
print((w//g) * (h//g) * c)

Submission status: Accepted

Solution code:
def sdk(a,b):
    if a < b:
        a,b = b,a
    if a%b == 0:
        return b
    else:
        return sdk(b, a%b)

w,h,c=map(int, input().split())
t = sdk(w,h)
print(w//t * h//t * c)

Submission status: Accepted

Solution code:

import math
  
w,h,c = [ int(s) for s in input().split() ]

gcd = math.gcd(w,h)

print((w//gcd)*(h//gcd)*c)

Submission status: Accepted

Solution code:
def g(a,b):
    if b==0:
        return a
    return g(b,a%b)

def main():
    w,h,c=map(int,input().split())
    d=g(w,h)
    print((w//d)*(h//d)*c)
main()

Submission status: Accepted

Solution code:
import math

W, H, C = map(int, input().split())
g = math.gcd(W, H)
print((W // g) * (H // g) * C)

Submission status: Accepted

Solution code:
W, H, C = map(int, input().split())
mini=10**10
for x in range(1,min(H,W)+1,1):
    if ( H % x ) or ( W % x ):
        continue
    mini=min(mini,(H//x)*(W//x)*C)
print(mini)

Submission status: Accepted

Solution code:

import math

W,H,C = [int(i) for i in input().split()]

g = math.gcd(W,H)
print(int(((W/g) * (H/g))*C))

Submission status: Accepted

Solution code:
def GCD(a, b): # a > b
    if a % b == 0: return b
    else: return GCD(b, a%b)
w, h, c = map(int, input().split())
if w > h: g = GCD(w, h)
else: g = GCD(h, w)
print(h*w*c//g**2)

Submission status: Accepted

Solution code:
import math
w,h,c=map(int,input().split())
print(int(w*h/math.gcd(w,h)**2*c))

Submission status: Accepted

Solution code:
import math

w, h, c = map(int, input().split())

size = math.gcd(w, h)
cost = w // size * h // size * c
print(cost)

Submission status: Accepted

Solution code:
from math import gcd
W, H, C = map(int, input().split())
g = gcd(W, H)
print(W*H*C//(g*g))

Submission status: Runtime Error

Solution code:
import math

W,H,C = map(int,input().split(' '))

x = math.gcd(W,H)

print((W//x)*(H//x)*C)

Submission status: Runtime Error

Solution code:
import fractions 
A, B, C = [int(k) for k in raw_input().split(' ')]
print((A * B)/ (fractions.gcd(A, B) ** 2 ))

Submission status: Runtime Error

Solution code:
import fractions 
A, B, C = [int(k) for k in raw_input().split(' ')]
print(C * ((A * B)/ (fractions.gcd(A, B) ** 2 )))