输出质数
一、什么是质数
质数又称素数。一个大于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,则这个数不是质数。