列出 100以内奇数、偶数、素数、合数 Java
时间: 2024-09-27 19:07:01 浏览: 49
在Java中,我们可以分别创建四个列表来存储100以内的奇数、偶数、素数和合数。以下是简单的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class NumberClassification {
public static void main(String[] args) {
List<Integer> primes = new ArrayList<>();
List<Integer> composites = new ArrayList<>();
List<Integer> oddNumbers = new ArrayList<>();
List<Integer> evenNumbers = new ArrayList<>();
for (int i = 2; i <= 100; i++) {
if (i % 2 == 0) { // 偶数
evenNumbers.add(i);
if (isPrime(i)) {
primes.add(i); // 如果偶数也是素数,则加入素数列表
} else {
composites.add(i); // 否则是合数
}
} else { // 奇数
oddNumbers.add(i);
}
// 素数检查函数
boolean isPrimeNum = true;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
isPrimeNum = false;
break;
}
}
if (isPrimeNum && i != 1) {
primes.add(i); // 确保只有大于1的数才被认为是素数
}
}
System.out.println("奇数列表: " + oddNumbers);
System.out.println("偶数列表: " + evenNumbers);
System.out.println("素数列表: " + primes);
System.out.println("合数列表: " + composites);
// 辅助函数判断是否为素数
private static boolean isPrime(int num) {
return num > 1 && !hasDivisor(num, 2, Math.sqrt(num));
}
// 检查是否有因子小于等于sqrt(n)
private static boolean hasDivisor(int num, int start, int end) {
for (int divisor = start; divisor <= end; divisor++) {
if (num % divisor == 0) {
return true;
}
}
return false;
}
}
}
```
这个程序会生成并打印出1到100范围内的奇数、偶数、素数和合数列表。
阅读全文