您的位置:首页 > 编程语言 > Java开发

【Java学习之路】Java编程之判断素数

2017-07-17 19:21 274 查看
输入一个整合判断是否为素数。

首先说一下,我们大家都知道什么是素数,素数就是只能被1和其本身所整除的数。

那么我们来说一下判断原理:素数只能被1和其本身整除的数,那么从另一个方面来说,除了1和其本身,其他的数都不能整除与他的数就是素数,那么我们的代码就可以这样来写。

代码如下:

import java.util.Scanner;//因为下面用到的Scanner类,所以要引包

public class Test {
public static void main(String[] args) {
// 输入一个整数判断是否是素数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a = sc.nextInt();// 接收输入的值,赋值给a
boolean flag = true;// 为下面的判断定义一个标记
// 判断输的数是否是素数
// 使用for循环进行循环判断
for (int i = 2; i < a; i++) {// i=2和i<a是因为我们要判断除了1和其本身,其他可以整除a的数
// 使用if判断是否能被2到小于其本身的数,所整除
if (a % i == 0) {// 如果a除以i取余的结果是零,那么这个数就不是素数
flag = false;// 因为判断出不是素数,所以把值给为false
break;// 因为已经判断出了这个数不是素数,所以继续判断下去已经无意义,使用break退出循环
}
}
// 使用if判断所做的标记flag,入过为true就执行下面的内容
if (flag && a != 1) {// 在前面我么没有判断1,所以在此加上&&
System.out.println(a + ":是素数");
} else {
System.out.println(a + ":不是素数");
}
}
}
上面我们判断出了素数,那么如果要打印1000以内的所有素数,该怎么做呢?

代码如下:

public class Test {
public static void main(String[] args) {
// 输入一个整数判断是否是素数
for (int j = 2; j <= 1000; j++) {
boolean flag = true;// 为下面的判断定义一个标记
// 判断输的数是否是素数
// 使用for循环进行循环判断
for (int i = 2; i < j; i++) {// i=2和i<a是因为我们要判断除了1和其本身,其他可以整除a的数
// 使用if判断是否能被2到小于其本身的数,所整除
if (j % i == 0) {// 如果a除以i取余的结果是零,那么这个数就不是素数
flag = false;// 因为判断出不是素数,所以把值给为false
break;// 因为已经判断出了这个数不是素数,所以继续判断下去已经无意义,使用break退出循环
}
}
// 使用if判断所做的标记flag,入过为true就执行下面的内容
if (flag) {// 在前面我么没有判断1,所以在此加上&&
System.out.println(j);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: