21xrx.com
2024-11-22 13:20:00 Friday
登录
文章检索 我的文章 写文章
用Java编写程序求解100以内的素数
2023-06-17 18:54:50 深夜i     --     --
Java 素数 试除法

素数是指只能被1和自身整除的数,如2、3、5、7等。而某些科学计算和加密算法需要大量的素数运算,所以编写一个程序来求解100以内的素数对于Java程序员来说是一个基本的挑战。

Java语言中有很多种方法可以实现素数的检测,其中比较常用的方法有“试除法”和“筛选法”。试除法的原理是:依次试除2到该数减1,如果存在一个因子能够整除这个数,则说明这个数不是素数;而筛选法则是从2开始依次筛选掉这个数的倍数,剩下的就是素数。

下面是使用“试除法”实现100以内素数的Java代码:


public class PrimeNum {

  public static void main(String[] args) {

    for (int i = 2; i <= 100; i++) {

      if (isPrime(i))

        System.out.print(i + " ");

    }

  }

  private static boolean isPrime(int num) {

    if (num == 2)

      return true;

    if (num < 2 || num % 2 == 0)

      return false;

    for (int i = 3; i <= Math.sqrt(num); i += 2) {

      if (num % i == 0)

        return false;

    }

    return true;

  }

}

运行上述代码,就可以得到100以内的所有素数了。从程序中可以看出,我们采用了“试除法”的思想,通过逐个试除2到该数减1的所有数,来判断该数是否为素数。同时,为了提高程序的效率,我们对偶数和小于2的数进行了特判,并且仅对不大于该数平方根的数进行试除,避免了时间的浪费。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复