关于最大公约数的三种解法之三(中学课本里的埃拉托色尼筛选法)

以前在中学里学习最大公约数的时候,课本里通常是这样解决问题,比如gcd(m,n),首先,找出m的所有质因数,第二步求出n的质因数,然后从第一步和第二步的质因数分解中找出所有的公因数,假设p是一个公因数,而且在m,n的质因数分解式分别出现过多次,最后将找出的质因数相乘,即为最大公约数,这个过程还是比其他的算法复杂的。

      比如60和24这两个数,我们得到:

                                                          60=2*2*3*5

                                                         24=2*2*3*2

                                                      gcd(60,24)=2*2*3=12

java  代码如下

package Sieve;

import java.util.Scanner;

public class sieve {
               public static int[] getPrime(int n)
               {
            	  int [] result1=new int[n];
            	  for(int i=2;i


你可能感兴趣的:(我的算法之路)