ONE_PIECE_ZXZ

求最大公约数

一. 如何求最大公约数?

方法:创建一个变量gcd来依次存储公约数。

1 int gcd = 0;

举例分析:10和20的公约数有1,2,4,5,10

那么如何找到10呢?

1.首先公约数小于或等于输入的数;

2.公约数能够被输出入整除。代码如下:

1     for(int i=2;i<=number1&&i<=number2;i++) {
2             if(number1%i==0&&number2%i==0) {
3                 gcd = i;//把公约数i依次付给变量gcd中
4             }
5         }

代码实现:

 for循环:

 1 package Demo1;
 2 import java.util.Scanner;
 3 public class Demo5 {
 4 
 5     public static void main(String[] args) {
 6         
 7         Scanner input = new Scanner(System.in);
 8         System.out.print("请输入第一个数值:");
 9         int number1 = input.nextInt();
10         System.out.print("请输入第二个数值:");
11         int number2 = input.nextInt();
12         
13         
14         int gcd = 1;
15         for(int i=2;i<=number1&&i<=number2;i++) {
16             if(number1%i==0&&number2%i==0) {
17                 gcd = i;//把公约数赋值给变量gcd
18             }
19         }
20         System.out.println(gcd);
21     }
22 }

 

 while循环

 1 package Demo1;
 2 import java.util.Scanner;
 3 public class Demo4 {
 4     public static void main(String[] args) {
 5     //求最大公约数
 6         Scanner input = new Scanner(System.in);
 7         System.out.print("请输入第一个数值:");
 8         int number1 = input.nextInt();
 9         System.out.print("请输入第二个数值:");
10         int number2 = input.nextInt();
11         
12         int i=2;
13         int gcd = 0;//把公约数存放在变量gcd当中
14         
15         while(i<=number1&&i<=number2) {
16             if(number1%i==0&&number2%i==0) {
17                 gcd = i;
18                 
19             }
20             i++;
21         }
22         System.out.println(gcd);
23     }
24 }

 

posted on 2018-10-07 12:11  ONE_PIECE_ZXZ  阅读(172)  评论(1)    收藏  举报