【JAVA】UVA 11417 - GCD

題目原文:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2412

Sample Input
10
100
500
0

Sample Output
67
13015
442011

題目大意:題目已經把程式碼給了,只需要再寫一個最大公因式的副程式。

透過輾轉相除法求最大公因式,重複執行大減小

  1. 其中一方結果為1,表示互質
  2. 其中一方結果為0,另一數為GCD
import java.util.*;
public class main{

	public static int GCD(int i ,int j){
		return (j==0) ? i : GCD(j , i%j);
	}
	
    public static void main(String[] args) {
        
            Scanner sc=new Scanner(System.in);
            
            while(sc.hasNext()){
            	int G=0,N=sc.nextInt();
            	
            	if(N == 0){
            		break;
            	}
            	
            	for(int i =1;i<N;i++){
            		for(int j =i+1;j<=N;j++){
            			G+=GCD(i,j);
            		}
            	}
            	System.out.println(G);
            }
            
    }
};