最大公约数和最小公倍数问题(洛谷P1029题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
最大公约数和最小公倍数问题(洛谷P1029题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P1029題目鏈接
分析
偉大的結論先亮出來:
最大公約數和最小公倍數的乘積就是原兩個數的積。
此時我們知道了數學的重要性,哈哈……
知道了這個事,寫代碼就容易了呢~~
需要用gcd(),我覺得用BigInteger的gcd()反而麻煩,就自己寫一下好了:
private static int gcd(int x,int y) {if(y==0) {return x;}return gcd(y, x % y); }Note:
gcd()表示輾轉相除法,就算你沒算法基礎,高中數學必修三也該學了,所以應該問題不大的,對了,該算法也稱歐幾里得算法。
AC代碼(Java語言描述)
import java.util.Scanner;public class Main {private static int gcd(int x,int y) {if(y==0) {return x;}return gcd(y, x % y);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int x = scanner.nextInt(), y = scanner.nextInt();scanner.close();int counter = 0;for (int i = 1; i <= Math.sqrt(x*y); i++) {if ((x * y) % i == 0 && gcd(i, (x * y) / i) == x) {counter++;}}System.out.println(counter*2);}}總結
以上是生活随笔為你收集整理的最大公约数和最小公倍数问题(洛谷P1029题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 崭新的2020(洛谷P5886题题解,J
- 下一篇: 【Java】JShell工具上手即用