R7-13 求质数 分数 10 作者 刘海 单位 西安邮电大学 本题目要求输入一个大于等于2的正整数,求所有不大于该正整数的质数。用java编写
时间: 2024-09-30 21:09:14 浏览: 117
R7-13 题目主要是让你用 Java 编程语言编写一个算法,用于找出并打印出小于或等于给定正整数的所有质数。质数是指只有1和其本身两个正因数的自然数。下面是一个简单的 Java 解决方案:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int num = 10; // 输入的正整数,这里以10为例
for (int i = 2; i <= num; i++) { // 从2开始,因为1不是质数
if (isPrime(i)) { // 判断i是否为质数
System.out.println(i); // 输出质数
}
}
}
// 判断一个数是否为质数的辅助函数
private static boolean isPrime(int n) {
if (n <= 1) return false;
if (n == 2 || n == 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6) { // 只需检查到√n,跳过6的倍数
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
}
```
在这个程序中,我们首先遍历从2到输入的数字,然后通过`isPrime`函数判断每个数是否为质数。`isPrime`函数使用了一些优化技巧,比如只需要检查6k±1形式的数,这是因为除了2和3外,其他质数都可以表示成6k±1的形式。
阅读全文