JAVA写程序如何输出前五十个素数?如何判断一个数是否是素数?

JAVA写程序输出前五十个素相信大家都不会陌生,这是在面试中经常会问到的题目,也是考核java写代码的基本功,那JAVA写程序如何输出前五十个素数?下面来我们就来给大家讲解一下。

JAVA输出前50个素数的两种方法:

方法一:

package Helloworld;
public class prime
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        int count = 0;
        for (int n = 2; count < 50; n++)
        {
            int isprime = 1;
            for (int i = 2; i < n; i++) < p = "" >
            {
                if (n % i == 0)
                {
                    isprime = 0;
                    break;
                }
            }
            if (isprime == 1)
            {
                System.out.print(n + " ");
                count = count + 1;
            }
        }
    }
}

方法二:

package Hello;
public class Isprime
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        //思想:利用现有的素数来检验之后的素数
        int[] primes = new int[50];
        primes[0] = 2;
        int cnt = 1; //下一个素数放到1的位置,且现在只有一个素数
        MAIN_LOOP:
            for (int x = 3; cnt < 50; x++)
            {
                for (int i = 0; i < cnt; i++) < p = "" >
                {
                    if (x % primes[i] == 0)
                    {
                        continue MAIN_LOOP;
                    }
                }
                primes[cnt++] = x;
            }
        for (int k: primes)
        {
            System.out.print(k + " ");
        }
    }
}

如何判断一个数是否是素数?

质数(prime number)又称素数,有无限个

质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

import java.util.Scanner;
public class TestWork
{
    public static void main(String[] args)
    {
        boolean isPrime = true;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数");
        int num = sc.nextInt();
        if (num > 0)
        {
            int k = (int) Math.sqrt(num); //k为num的正平方根,取整数
            for (int i = 2; i <= k; i++)
            {
                if (num % i == 0)
                {
                    isPrime = false; //不是素数
                    break;
                }
            }
        }
        if (isPrime)
        {
            System.out.println(num + "是素数");
        }
        else
        {
            System.out.println(num + "不是素数");
        }
    }
}

输出1~1000之间的素数

思路

偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。

public class TestWork
{
    public static void main(String[] args)
    {
        boolean isPrime = true;
        int PrimeCount = 0;
        for (int i = 3; i <= 1000; i += 2)
        {
            int k = (int) Math.sqrt(i); //k为num的正平方根,取整数
            isPrime = true;
            for (int j = 2; j <= k; j++)
            {
                if (i % j == 0)
                {
                    isPrime = false; //不是素数
                    break;
                }
            }
            if (isPrime)
            {
                PrimeCount++;
                System.out.print(i + "\t");
                if (PrimeCount % 5 == 0)
                {
                    System.out.println();
                }
            }
        }
    }
}

java 求1-100之间的质数

质数定义:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

如:2,3,5,7,11…

1、质数实例一

//1-100之间的质数--------1
public class PrimeNumber
{
    public static void main(String[] args)
    {
        for (int i = 2; i <= 100; i++)
        {
            boolean flag = true;
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    flag = false;
                    break;
                }
            }
            if (flag)
            {
                System.out.println("质数:i= " + i);
            }
        }
    }
}

2、质数实例二

//1-100之间的质数--------2
public class PrimeNumber
{
    public static void main(String[] args)
    {
        for (int i = 2; i <= 100; i++)
        {
            for (int j = 2; j <= i; j++)
            {
                if (i % j == 0 && i != j)
                {
                    break;
                }
                if (j == i)
                {
                    System.out.println("质数:i= " + i);
                }
            }
        }
    }
}

3、质数实例三

//1-100之间的质数--------3
public class PrimeNumber
{
    public static void main(String[] args)
    {
        for (int i = 2; i <= 100; i++)
        {
            int j = 2;
            while (i % j != 0)
            {
                j++;
            }
            if (j == i)
            {
                System.out.println("质数:i= " + i);
            }
        }
    }
}

4、质数实例四

//1-100之间的质数--------4
public class PrimeNumber
{
    public static void main(String[] args)
    {
        for (int i = 2; i <= 100; i++)
        {
            int j = 2;
            for (; j <= i / 2; j++)
            {
                if (i % j == 0)
                {
                    break;
                }
            }
            if (j == i / 2 + 1)
            {
                System.out.println("质数:i= " + i);
            }
        }
    }
}

5、质数实例五

public class PrimeNumber
{
    public static void main(String[] args)
    {
        int count = 0;
        for (int i = 2; i <= 100; i++)
        {
            int j = 2;
            for (; j <= (int) Math.sqrt(i); j++)
            {
                if (i % j == 0)
                {
                    break;
                }
            }
            if (j == (int) Math.sqrt(i) + 1)
            {
                System.out.println("质数:i= " + i);
                count++;
            }
        }
        System.out.println("质数个数:count= " + count);
    }
}

6、质数实例六

public class PrimeNumber {
 public static void main(String[] args) {
int count1 = 0, count2 = 0;
  for (int i = 2; i <= 100; i++) {   
   for (int j = 2; j <= Math.sqrt(i); j++) {
    if (i % j != 0) {
     //不能被整除累计一次
     count1++;
    }
   }
   // 转为int的类型
   int num2 = (int) Math.sqrt(i);
   //如果累计次数num2 - 1个数相等则为素数
   if (count1 == (num2 - 1) {
    System.out.println("质数: " + i);
    count2++;
   }
   //找到素数后count1再初始化为0
   count1 = 0;
  }
  // 统计素数个数
  System.out.println("质数个数:count2= "+count2);
 }
}

我们可以利用以上的方法判断一个数是否是素数,其实也没有什么难度,只是将代码逻辑理清楚,一切都会很简单!最后大家如果想要了解更多java实例知识,敬请关注奇Q工具网。

推荐阅读:

程序员如何面试?程序员面试技巧

手机json文件怎么编辑?json编辑工具有哪些?

springboot怎么改成ssm?springboot改成ssm方法