最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java求素數(shù)和最大公約數(shù)的簡單代碼示例

 更新時間:2015年09月21日 08:45:53   作者:捏造的信仰  
這篇文章主要介紹了Java求素數(shù)和最大公約數(shù)的簡單代碼示例,其中作者創(chuàng)建的Fraction類可以用來進行各種分數(shù)運算,需要的朋友可以參考下

Java小例子:求素數(shù)
素數(shù)(質(zhì)數(shù))指的是不能被分解的數(shù),除了 1 和它本身之外就沒有其它數(shù)能夠整除。這里是一個小例子,說明如何求取十萬以內(nèi)的所有素數(shù)。
 
素數(shù)的分布沒有規(guī)律可言,所以要檢驗一個數(shù)是不是素數(shù),就必須將它同所有小于它的數(shù)作除法。不過有一個簡便的方法,就是不需要檢驗所有小于它的數(shù),而只要檢驗所有小于它的素數(shù)。如果所有小于它的素數(shù)都不能將其整除,那么它就是素數(shù)。

public class Primes { 
  
  public static void main(String[] args) { 
    // 求素數(shù) 
    List<Integer> primes = getPrimes(100000); 
  
    // 輸出結(jié)果 
    for (int i = 0; i < primes.size(); i++) { 
      Integer prime = primes.get(i); 
      System.out.printf("%8d", prime); 
      if (i % 10 == 9) { 
        System.out.println(); 
      } 
    } 
  } 
  
  /** 
   * 求 n 以內(nèi)的所有素數(shù) 
   * 
   * @param n 范圍 
   * 
   * @return n 以內(nèi)的所有素數(shù) 
   */ 
  private static List<Integer> getPrimes(int n) { 
    List<Integer> result = new ArrayList<Integer>(); 
    result.add(2); 
 
    for (int i = 3; i <= n; i += 2) { 
      if (!divisible(i, result)) { 
        result.add(i); 
      } 
    } 
  
    return result; 
  } 
  
  /** 
   * 判斷 n 是否能被整除 
   * 
   * @param n   要判斷的數(shù)字 
   * @param primes 包含素數(shù)的列表 
   * 
   * @return 如果 n 能被 primes 中任何一個整除,則返回 true。 
   */ 
  private static boolean divisible(int n, List<Integer> primes) { 
    for (Integer prime : primes) { 
      if (n % prime == 0) { 
        return true; 
      } 
    } 
    return false; 
  } 
} 


Java小例子:模擬分數(shù)的類 Fraction

這里是一個模擬分數(shù)運算的例子:Fraction 類。分數(shù)運算完后要用最大公約數(shù)除分子分母。所以這里也有個用輾轉(zhuǎn)相除法求最大公約數(shù)的例子。另外在構(gòu)造 Fraction 對象時如果分母為零將會拋出異常,這也是必要的檢查。

public class FractionTest { 
  
  public static void main(String[] args) { 
    Fraction a = new Fraction(7, 32); 
    Fraction b = new Fraction(13, 32); 
    System.out.println(a + " + " + b + " = " + a.add(b) + "(" + a.add(b).doubleValue() + ")"); 
    System.out.println(a + " - " + b + " = " + a.minus(b) + "(" + a.minus(b).doubleValue() + ")"); 
    System.out.println(a + " * " + b + " = " + a.multiply(b) + "(" + a.multiply(b).doubleValue() + ")"); 
    System.out.println(a + " / " + b + " = " + a.devide(b) + "(" + a.devide(b).doubleValue() + ")"); 
  } 
} 
  
// 分數(shù) 
class Fraction { 
  private int numerator;   // 分子 
  
  private int denominator;  // 分母 
  
  Fraction(int numerator, int denominator) { 
    if (denominator == 0) { 
      throw new IllegalArgumentException("分母不能為 0"); 
    } 
  
    this.numerator = numerator; 
    this.denominator = denominator; 
    shrink(); 
  } 
  
  Fraction() { 
    this(0, 1); 
  } 
  
  public int getNumerator() { 
    return numerator; 
  } 
  
  public void setNumerator(int numerator) { 
    this.numerator = numerator; 
  } 
  
  public int getDenominator() { 
    return denominator; 
  } 
  
  public void setDenominator(int denominator) { 
    this.denominator = denominator; 
  } 
  
  // 分子分母同除以最大公約數(shù) 
  private Fraction shrink() { 
    int maxCommonDivisor = getMaxCommonDivisor(this.denominator, this.numerator); 
    this.numerator /= maxCommonDivisor; 
    this.denominator /= maxCommonDivisor; 
    return this; 
  } 
  
  // 輾轉(zhuǎn)相除法求最大公約數(shù) 
  private int getMaxCommonDivisor(int a, int b) { 
    int mod = a % b; 
  
    if (mod == 0) { 
      return b; 
    } else { 
      return getMaxCommonDivisor(b, mod); 
    } 
  } 
  
  // 分數(shù)加法 
  public Fraction add(Fraction that) { 
    return new Fraction(this.numerator * that.denominator + this.denominator * that.numerator, 
        this.denominator * that.denominator); 
  } 
  
  // 分數(shù)減法 
  public Fraction minus(Fraction that) { 
    return new Fraction(this.numerator * that.denominator - this.denominator * that.numerator, 
        this.denominator * that.denominator); 
  } 
  
  // 分數(shù)乘法 
  public Fraction multiply(Fraction that) { 
    return new Fraction(this.numerator * that.numerator, 
        this.denominator * that.denominator); 
  } 
  
  // 分數(shù)除法 
  public Fraction devide(Fraction that) { 
    return new Fraction(this.numerator * that.denominator, 
        this.denominator * that.numerator); 
  } 
  
  public double doubleValue() { 
    return (double) numerator / denominator; 
  } 
  
  @Override 
  public String toString() { 
    return String.format("{%d/%d}", this.numerator, this.denominator); 
  } 
} 

 
運行輸出:

{7/32} + {13/32} = {5/8}(0.625)
{7/32} - {13/32} = {-3/16}(-0.1875)
{7/32} * {13/32} = {91/1024}(0.0888671875)
{7/32} / {13/32} = {7/13}(0.5384615384615384)

相關(guān)文章

  • Javaweb實戰(zhàn)之實現(xiàn)蛋糕訂購系統(tǒng)

    Javaweb實戰(zhàn)之實現(xiàn)蛋糕訂購系統(tǒng)

    隨著網(wǎng)絡的普及與發(fā)展,網(wǎng)上購物逐漸成為一種主流消費的方式。這篇文章主要介紹了通過JavaWeb制作一個線上蛋糕訂購系統(tǒng),文中示例代碼講解詳細,需要的朋友可以參考一下
    2021-12-12
  • SpringBoot中的Redis?緩存問題及操作方法

    SpringBoot中的Redis?緩存問題及操作方法

    這篇文章主要介紹了SpringBoot中的Redis?緩存,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • SpringMVC---配置與使用的示例

    SpringMVC---配置與使用的示例

    這篇文章主要介紹了SpringMVC---配置與使用的示例,幫助大家更好的理解和學習spring框架,感興趣的朋友可以了解下
    2020-10-10
  • Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    這篇文章主要介紹了Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析,List是有序集合的根接口,Set是無序集合的根接口,無序也就意味著元素不重復,更嚴格地說,Set集合不包含一對元素e1和e2 ,使得e1.equals(e2) ,并且最多一個空元素,需要的朋友可以參考下
    2023-09-09
  • 解決SpringMvc中普通類注入Service為null的問題

    解決SpringMvc中普通類注入Service為null的問題

    這篇文章主要介紹了解決SpringMvc中普通類注入Service為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • mybatis?傳入null值的解決方案

    mybatis?傳入null值的解決方案

    這篇文章主要介紹了mybatis?傳入null值的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SystemServer進程啟動過程解析

    SystemServer進程啟動過程解析

    這篇文章主要為大家介紹了SystemServer進程啟動過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • java中ThreadLocalRandom的使用詳解

    java中ThreadLocalRandom的使用詳解

    這篇文章主要介紹了java中ThreadLocalRandom的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • SpringBoot 集成 ShedLock 分布式鎖的示例詳解

    SpringBoot 集成 ShedLock 分布式鎖的示例詳解

    ShedLock是一個在分布式環(huán)境中使用的定時任務框架,用于解決在分布式環(huán)境中的多個實例的相同定時任務在同一時間點重復執(zhí)行的問題,本文重點給大家介紹SpringBoot 分布式鎖ShedLock的相關(guān)知識,感興趣的朋友一起看看吧
    2021-08-08
  • java-collection中的null,isEmpty用法

    java-collection中的null,isEmpty用法

    這篇文章主要介紹了java-collection中的null,isEmpty用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

滁州市| 兴山县| 依兰县| 黄浦区| 乌兰浩特市| 松阳县| 丹棱县| 兴业县| 平山县| 南皮县| 昌都县| 平潭县| 陇川县| 罗山县| 台东县| 福建省| 施秉县| 文昌市| 惠水县| 德化县| 唐海县| 旌德县| 彩票| 偏关县| 安塞县| 阿克苏市| 普兰县| 徐水县| 新乐市| 方城县| 赣州市| 敦煌市| 周至县| 荆门市| 丹凤县| 额济纳旗| 莱芜市| 东阳市| 保靖县| 吉林省| 赣州市|