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

来源:互联网 发布:运营商网络重构步骤 编辑:程序博客网 时间:2024/05/22 11:17

输入一个整合判断是否为素数。

首先说一下,我们大家都知道什么是素数,素数就是只能被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();// 接收输入的值,赋值给aboolean 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;// 因为判断出不是素数,所以把值给为falsebreak;// 因为已经判断出了这个数不是素数,所以继续判断下去已经无意义,使用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;// 因为判断出不是素数,所以把值给为falsebreak;// 因为已经判断出了这个数不是素数,所以继续判断下去已经无意义,使用break退出循环}}// 使用if判断所做的标记flag,入过为true就执行下面的内容if (flag) {// 在前面我么没有判断1,所以在此加上&&System.out.println(j);}}}}



原创粉丝点击