输出质数(Java)


输出质数

一、什么是质数

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

二、代码实现

1.输出100以内的质数

import java.util.ArrayList;
import java.util.List;

public class PrimeNumber
{
    /*
    * 1-100
    * 1 3 5 7 11 13 17
    * 只能被1和本身整除
    *
    * */
    public static void main(String[] args)
    {
        boolean flag;
        List<Integer> priArr = new ArrayList<>();
        for (int i=2;i<100;i++)
        {
            flag=true;
            for (int j=2;j<=Math.sqrt(i);j++)//Math.sqrt()方法是对i开根号
            {
                if (i%j==0)
                {
                   flag=false;//如果为false说明这个数不是质数
                   break;
                }
            }
            if (flag)//是质数flag就是ture
            {
                priArr.add(i);
            }
        }
       for (int s:priArr)
       {
           System.out.print(s+“ ”);
       }
    }
}

2.输入需要输出多少以内的素数

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PrimeNumber {
    /*
     * 1-100
     * 1 3 5 7 11 13 17
     * 只能被1和本身整除
     *
     * */
    public static void main(String[] args)
    {
        System.out.println("请输入需要输出多少以内的质数:");
        Scanner scanner=new Scanner(System.in);
        int x=scanner.nextInt();
        boolean flag;
        List<Integer> priArr = new ArrayList<>();
        for (int i=2;i<x;i++)
        {
            flag=true;
            for (int j=2;j<=Math.sqrt(i);j++)//Math.sqrt()方法是对i开根号
            {
                if (i%j==0)
                {
                    flag=false;//如果为false说明这个数不是质数
                    break;
                }
            }
            if (flag)//是质数flag就是ture
            {
                priArr.add(i);
            }
        }
        for (int s:priArr)
        {
            System.out.print(s+“ ”);
        }
    }
}

三、运行结果

四、总结

  找质数主要运用了双重for循环,和用flag作为一个标识。其中外层for对需要查找的数值范围遍历,内层for对根号i以内的数值遍历,通过if判断利用flag是否变为false来判断这个数是否为质数,如果是则flag不变,为true,如果flag变为false,则这个数不是质数。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM