Board logo

標題: 求最大公因數 [打印本頁]

作者: tonyh    時間: 2021-8-17 17:01     標題: 求最大公因數

本帖最後由 tonyh 於 2021-8-17 17:30 編輯

  1. import java.util.Scanner;

  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 int x, y, smaller, gcd=0;
  5.                 Scanner s=new Scanner(System.in);
  6.             System.out.print("請依序輸入兩個正整數: ");
  7.                 x=s.nextInt();
  8.                 y=s.nextInt();
  9.                 smaller=x<y?x:y;
  10.                 for(int i=1; i<=smaller; i++)
  11.                         if(x%i==0 && y%i==0)
  12.                                 gcd=i;
  13.                 System.out.printf("%d與%d的最大公因數為: %d",x,y,gcd);
  14.         }
  15. }
複製代碼
  1. import java.util.Scanner;

  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 int x, y, smaller, gcd=0;
  5.                 Scanner s=new Scanner(System.in);
  6.             System.out.print("請依序輸入兩個正整數: ");
  7.                 x=s.nextInt();
  8.                 y=s.nextInt();
  9.                 smaller=x<y?x:y;
  10.                 for(int i=smaller; i>=1; i--)
  11.                 {
  12.                         if(x%i==0 && y%i==0)
  13.                         {
  14.                                 gcd=i;
  15.                                 break;
  16.                         }
  17.                 }
  18.                 System.out.printf("%d與%d的最大公因數為: %d",x,y,gcd);
  19.         }
  20. }
複製代碼
  1. import java.util.Scanner;

  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 int x, y;
  5.                 Scanner s=new Scanner(System.in);
  6.             System.out.print("請依序輸入兩個正整數: ");
  7.                 x=s.nextInt();
  8.                 y=s.nextInt();
  9.                 System.out.printf("%d與%d的最大公因數為: %d",x,y,gcd(x,y));
  10.         }
  11.        
  12.         static int gcd(int x, int y)
  13.         {
  14.                 while(x%y!=0)
  15.                 {
  16.                         int tmp=x%y;
  17.                         x=y;
  18.                         y=tmp;
  19.                 }
  20.                 return y;
  21.         }
  22. }
  23. /*     x    y         x%y
  24.       56 / 35 = 1 ... 21
  25.       35 / 21 = 1 ... 14
  26.       21 / 14 = 1 ... 7
  27.       14 / 7  = 2 ... 0
  28. */
複製代碼
  1. import java.util.Scanner;

  2. public class Ch01 {

  3.         public static void main(String[] args) {
  4.                 int x, y;
  5.                 Scanner s=new Scanner(System.in);
  6.             System.out.print("請依序輸入兩個正整數: ");
  7.                 x=s.nextInt();
  8.                 y=s.nextInt();
  9.                 System.out.printf("%d與%d的最大公因數為: %d",x,y,gcd(x,y));
  10.         }
  11.        
  12.         static int gcd(int x, int y)
  13.         {
  14.                 if(x%y==0)
  15.                         return y;
  16.                 else
  17.                         return gcd(y, x%y);
  18.         }
  19. }
  20. /*     x    y         x%y
  21.       56 / 35 = 1 ... 21
  22.       35 / 21 = 1 ... 14
  23.       21 / 14 = 1 ... 7
  24.       14 / 7  = 2 ... 0
  25. */
複製代碼

作者: 吳孟修    時間: 2021-8-17 17:26

  1. import java.util.Scanner;
  2. public class Ch05
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.             Scanner s=new Scanner(System.in);
  7.             int x,y,smaller,g=0;
  8.             System.out.print("請依序輸入兩個正整數:");
  9.             x=s.nextInt();
  10.             y=s.nextInt();
  11.             smaller=x<y?x:y;
  12.             for(int i=1;i<=smaller;i++)
  13.             {
  14.                     if(x%i==0 && y%i==0)
  15.                             g=i;
  16.             }
  17.             System.out.printf("%d與%d的最大公因數為:%d",x,y,g);
  18.         }
  19. }
複製代碼

作者: 吳孟修    時間: 2021-8-17 17:30

  1. import java.util.Scanner;
  2. public class Ch05
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.             Scanner s=new Scanner(System.in);
  7.             int x,y,smaller,g=0;
  8.             System.out.print("請依序輸入兩個正整數:");
  9.             x=s.nextInt();
  10.             y=s.nextInt();
  11.             smaller=x<y?x:y;
  12.             for(int i=smaller; i>=1; i--)
  13.         {
  14.             if(x%i==0 && y%i==0)
  15.             {
  16.                 g=i;
  17.                 break;
  18.             }
  19.         }
  20.             System.out.printf("%d與%d的最大公因數為:%d",x,y,g);
  21.         }
  22. }
複製代碼

作者: 吳孟修    時間: 2021-8-17 17:34

  1. import java.util.Scanner;
  2. public class Ch05
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.             Scanner s=new Scanner(System.in);
  7.             int x,y;
  8.             System.out.print("請依序輸入兩個正整數:");
  9.             x=s.nextInt();
  10.             y=s.nextInt();
  11.             System.out.printf("%d與%d的最大公因數為:%d",x,y,g(x,y));
  12.         }
  13.         static int g(int x,int y)
  14.         {
  15.                 while(x%y!=0)
  16.                 {
  17.                         int t=x%y;
  18.                         x=y;
  19.                         y=t;
  20.                 }
  21.                 return y;
  22.         }
  23. }
複製代碼

作者: 吳孟修    時間: 2021-8-17 17:36

  1. import java.util.Scanner;
  2. public class Ch05
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.             Scanner s=new Scanner(System.in);
  7.             int x,y;
  8.             System.out.print("請依序輸入兩個正整數:");
  9.             x=s.nextInt();
  10.             y=s.nextInt();
  11.             System.out.printf("%d與%d的最大公因數為:%d",x,y,g(x,y));
  12.         }
  13.         static int g(int x,int y)
  14.         {
  15.                 if(x%y==0)
  16.                 {
  17.                         return y;
  18.                 }
  19.                 else
  20.                     return g(y,x%y);
  21.         }
  22. }
複製代碼

作者: 吳孟書    時間: 2021-8-17 17:37

  1. package ch01;
  2. import java.util.Scanner;
  3. public class ch01
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Scanner s=new Scanner(System.in);
  8.         int x,y,a,b=0;
  9.         System.out.print("請依序輸入兩個整數:");
  10.         x=s.nextInt();
  11.         y=s.nextInt();
  12.         a=x<y?x:y;
  13.         for(int i=a;i>=1;i--)
  14.         {
  15.                 if(x%i==0 && y%i==0)
  16.                 {
  17.                         b=i;
  18.                         break;
  19.                 }
  20.         }
  21.         System.out.println(x+"與"+y+"的最大公因數為:"+b);
  22.         }
  23. }
複製代碼

作者: 吳孟書    時間: 2021-8-17 17:39

本帖最後由 吳孟書 於 2021-8-17 17:44 編輯
  1. package ch01;
  2. import java.util.Scanner;
  3. public class ch02
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Scanner s=new Scanner(System.in);
  8.         int x,y,a,b=0;
  9.         System.out.print("請依序輸入兩個整數:");
  10.         x=s.nextInt();
  11.         y=s.nextInt();
  12.         a=x<y?x:y;
  13.         for(int i=1;i<=a;i++)
  14.         {
  15.                 if(x%i==0 && y%i==0)
  16.                         b=i;
  17.         }
  18.         System.out.println(x+"與"+y+"的最大公因數為:"+b);
  19.         }
  20. }
複製代碼

作者: 吳孟書    時間: 2021-8-17 17:44

  1. package ch01;
  2. import java.util.Scanner;
  3. public class ch03
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Scanner s=new Scanner(System.in);
  8.         int x,y,a,b=0;
  9.         System.out.print("請依序輸入兩個整數:");
  10.         x=s.nextInt();
  11.         y=s.nextInt();
  12.         System.out.println(x+"與"+y+"的最大公因數為:"+a(x,y));
  13.         }
  14.         static int a(int x,int y)
  15.         {
  16.                 while(x%y!=0)
  17.         {
  18.                 int tmp=x%y;
  19.                 x=y;
  20.                 y=tmp;
  21.         }
  22.         return y;
  23.         }
  24. }
複製代碼

作者: 吳孟書    時間: 2021-8-17 17:46

  1. package ch01;
  2. import java.util.Scanner;
  3. public class ch04
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Scanner s=new Scanner(System.in);
  8.         int x,y,a,b=0;
  9.         System.out.print("請依序輸入兩個整數:");
  10.         x=s.nextInt();
  11.         y=s.nextInt();
  12.         System.out.println(x+"與"+y+"的最大公因數為:"+a(x,y));
  13.         }
  14.         static int a(int x, int y)
  15.     {
  16.             if(x%y==0)
  17.                     return y;
  18.             else
  19.                     return a(y, x%y);
  20.     }
  21. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2