https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2412
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
while(scn.hasNext()){
int n=scn.nextInt(),g=0;
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);
}
}
public static int gcd(int i,int j){
while((i%=j)!=0&&(j%=i)!=0);
return i+j;
}
/*
題目:Q11417: GCD
作者:1010
時間:西元 2016 年 7 月 */
}
困難度 ★
這題很簡單只是呼叫gcd()自己撰寫的求最大公因數,然後再依題意雙迴圈加起來
求最大公因數的方法有兩種:
public class Main {
public static void main(String[] args) {
int a=300,b=250;
while((a%=b)!=0&&(b%=a)!=0);//注意要括號包起來!
System.out.println("The GCD is:"+(a+b));
}
/*
題目:求最大公因數 方法一
作者:1010
時間:西元 2016 年 7 月 */
}
public class Main {
public static void main(String[] args) {
int a=300,b=250;
while(b!=0){
int temp=a%b;
a=b;
b=temp;
}
System.out.println("The GCD is:"+a);
}
/*
題目:求最大公因數 方法二
作者:1010
時間:西元 2016 年 7 月 */
}
public class Main {
public static void main(String[] args) {
int a=300,b=250;
System.out.println("The LCM is:"+(a*b)/gcd(a,b));//最小公倍數=兩數相乘除以兩數的的最大公因數
}
public static int gcd(int i,int j){
while((i%=j)!=0&&(j%=i)!=0);
return i+j;
}
/*
題目:求最小公倍數(結合GCD方法一實現))
作者:1010
時間:西元 2016 年 7 月 */
}
沒有留言:
張貼留言