題目描述
手刃仇敵後,雷神索爾每日不思進取,飯量激增,他的飯量已經達到了不可想象的地步。索爾每天都要喫n頓飯,但是他有一個怪癖就是喫飯前會算一下自己該喫多少飯。(喫個飯也要這麼講究,不愧是雷神啊!)
他是這樣說的,我喫飯前需要翻開自己的筆記,我需要知道我前兩次喫過的飯量,因爲這次的飯量應該是前兩次的飯量的公倍數,但是我怕我怕太胖,我又不能喫的特別多,所以我只喫前兩次飯量的最小公倍數飯量就好。然後我繼續記錄下來,以便下次喫飯的時候查看。
可惜粗心的索爾還是在一次喫飯中忘記帶自己的筆記本了,但是他清楚的記得自己第一次和第二次喫飯時候的飯量分別爲N,M,他想知道第T頓飯的此時應該喫多少?(第T頓飯不包含第一次和第二次的飯量)請你來幫幫索爾算一算這頓應該喫多少吧!
注意:T=1,表示你只需要計算一次。
輸入描述
輸入一行包含三個變量,第一次的飯量N,第二次的飯量M,第T頓飯。輸入的數均不超過unsigned long long。
輸出描述
輸出第T頓飯的飯量是多少呢?
注意:(第T頓飯不包含第一次和第二次的飯量,輸出數據保證不超過unsigned long long)
樣例輸入 1
2 3 1
樣例輸出 1
6
樣例解釋 1
由於T爲1,且數字2,3的最小公倍數是6,則進行一次最小公倍數計算所得結果爲6。
樣例輸入 2
3 5 2
樣例輸出 2
15
思路:
這題想了好久,但是最後的幾個樣例還是沒過。
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner read = new Scanner(System.in);
String[] str = read.nextLine().split(" ");
BigInteger a;
BigInteger b;
BigInteger count = new BigInteger(str[2]);
BigInteger answer;
a = new BigInteger(str[0]);
b = new BigInteger(str[1]);
if(a.compareTo(BigInteger.ZERO)==0 || b.compareTo(BigInteger.ZERO)==0)
{
System.out.println(0);
}
else
{
answer = a.multiply(b).divide(a.gcd(b));
System.out.println(answer);
}
read.close();
}
}