使用java判断101-200之间有多少个素数并输出
作者:牛肉胡辣汤
在编程中,处理数学问题是一个常见的任务。本文将介绍如何使用Java语言来判断101到200之间的整数中有多少个是素数,并输出这些素数。素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。
什么是素数
素数(Prime number)是只有两个正因子(1和自己)的自然数,且必须大于1。例如,5是一个素数,因为它只能被1和5整除;而4不是素数,因为它可以被1、2和4整除。
Java代码实现
下面是一个简单的Java程序,用于找出并打印101到200之间的所有素数:
public class PrimeNumbers {
public static void main(String[] args) {
int count = 0; // 计数器,用于统计素数的数量
for (int i = 101; i <= 200; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("101到200之间共有 " + count + " 个素数。");
}
// 判断一个数是否为素数的方法
private static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}代码解析
主方法 (main 方法):
- 定义了一个计数器
count 来记录找到的素数数量。 - 使用
for 循环遍历101到200之间的每一个数字。 - 对每个数字调用
isPrime 方法检查是否为素数。 - 如果是素数,则打印该数字并将计数器加一。
- 最后,输出总共找到了多少个素数。
判断素数的方法 (isPrime 方法):
- 首先检查数字是否小于或等于1,如果是,则返回
false,因为1及以下的数不是素数。 - 使用一个
for 循环从2开始到该数字的平方根进行迭代。选择平方根作为上限是因为如果一个数不是素数,那么它必定有一个小于或等于其平方根的因数。 - 在循环中,如果发现任何能整除该数字的数,则返回
false。 - 如果循环结束后没有发现能整除的数,则返回
true,表示该数字是素数。
运行结果
当你运行上述Java程序时,它会输出101到200之间的所有素数以及这些素数的总数。
方法补充
方法一
下面是一个用Java编写的示例程序,用于判断101到200之间的素数,并输出这些素数及其总数。
public class PrimeNumbers {
public static void main(String[] args) {
int start = 101;
int end = 200;
int count = 0;
System.out.println("Prime numbers between " + start + " and " + end + " are:");
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
}
// 判断一个数是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}代码解释
主类和主方法:
-
PrimeNumbers 是主类。 -
main 方法是程序的入口点。
变量定义:
-
start 和 end 分别定义了要检查的范围(101到200)。 -
count 用于记录找到的素数数量。
循环遍历范围内的每个数:
- 使用
for 循环从 start 到 end 遍历每个数。 - 对于每个数,调用
isPrime 方法判断其是否为素数。
判断素数的方法:
-
isPrime 方法接受一个整数 num 作为参数。 - 如果
num 小于或等于1,则返回 false(因为1及以下的数不是素数)。 - 使用
for 循环从2到 sqrt(num) 检查是否有任何数能整除 num。如果有,则 num 不是素数,返回 false。 - 如果没有找到能整除
num 的数,则 num 是素数,返回 true。
输出结果:
如果一个数是素数,输出该数并增加 count。
最后输出总共有多少个素数。

方法二
下面是一个使用Java编写的程序,用于判断101到200之间有多少个素数,并输出所有的素数。
Java 代码
public class PrimeNumbers {
public static void main(String[] args) {
int start = 101;
int end = 200;
int count = 0;
System.out.println("Prime numbers between " + start + " and " + end + " are:");
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
}
// 判断一个数是否为素数
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
if (num == 2) {
return true;
}
if (num % 2 == 0) {
return false;
}
for (int i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
}代码解释
主类和主方法:
-
PrimeNumbers 是主类。 -
main 方法是程序的入口点。
变量定义:
-
start 和 end 分别定义了要检查的范围(101到200)。 -
count 用于记录素数的数量。
循环遍历范围内的每个数:
- 使用
for 循环从 start 到 end 遍历每个数。 - 对于每个数
i,调用 isPrime 方法判断其是否为素数。
输出素数:如果 i 是素数,输出该数并增加 count。
输出总素数数量:循环结束后,输出总的素数数量。
判断素数的方法 isPrime:
- 如果
num 小于等于1,返回 false(1不是素数)。 - 如果
num 等于2,返回 true(2是最小的素数)。 - 如果
num 是偶数且不等于2,返回 false(偶数除了2都不是素数)。 - 使用
for 循环从3开始,每次增加2(只检查奇数),直到 Math.sqrt(num),如果 num 能被任何一个小于等于其平方根的数整除,则返回 false。 - 如果以上条件都不满足,返回
true,表示 num 是素数。
运行结果
运行上述程序,你将看到101到200之间的所有素数及其总数。例如:
Prime numbers between 101 and 200 are:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
Total prime numbers between 101 and 200: 21
到此这篇关于使用java判断101-200之间有多少个素数并输出的文章就介绍到这了,更多相关java判断素数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
