输出质数(Java)

时间:2024-09-07 21:35:38

输出质数

一、什么是质数

  质数又称素数。一个大于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+“ ”);
}
}
}

三、运行结果

输出质数(Java)

输出质数(Java)

四、总结

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