用Java写一个输出素数的函数
时间: 2024-05-11 16:15:42 浏览: 7
好的,以下是一个用Java写的输出素数的函数:
```
public static void printPrimeNumbers(int n) {
boolean[] primes = new boolean[n+1]; // initialize a boolean array for marking primes
Arrays.fill(primes, true); // set all values to true
for (int i = 2; i*i <= n; i++) {
if (primes[i]) {
for (int j = i*i; j <= n; j+=i) {
primes[j] = false; // mark multiples of i as non-prime
}
}
}
for (int i = 2; i <= n; i++) {
if (primes[i]) {
System.out.print(i + " ");
}
}
}
```
以上函数可以输出小于等于n的所有素数,您可以将n替换为您想要的数字来测试。希望这可以帮到您!
相关问题
用java输出100以内素数
好的,以下是用 Java 输出 100 以内素数的代码:
```java
public class PrimeNumbers {
public static void main(String[] args) {
int n = 100;
System.out.printf("1~%d之间的素数有:\n", n);
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
private static boolean isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
```
运行结果如下:
```
1~100之间的素数有:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
以上代码中,`isPrime(n)`函数用于判断一个数是否是素数,`Math.sqrt(n)`表示n的平方根。
用java写将一个数用素数展开的代码,并注释
以下是用Java写将一个数用素数展开的代码,并注释:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class PrimeFactors {
// 判断一个数是否为素数
public static boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
// 将一个数用素数展开
public static ArrayList<Integer> primeFactors(int n) {
ArrayList<Integer> factors = new ArrayList<Integer>();
for (int i = 2; i <= n; i++) {
if (!isPrime(i)) continue; // 如果i不是素数,跳过本次循环
while (n % i == 0) { // 如果n能被i整除
factors.add(i); // 将i加入factors
n /= i; // n除以i
}
}
return factors;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = scanner.nextInt();
ArrayList<Integer> factors = primeFactors(n);
System.out.print(n + "的素数展开式为:");
for (int i = 0; i < factors.size(); i++) {
System.out.print(factors.get(i));
if (i < factors.size() - 1) System.out.print(" * ");
}
System.out.println();
}
}
```
首先,我们定义了一个函数`isPrime`,用来判断一个数是否为素数。它的实现和C++版的一样,从2到该数的平方根,逐个判断是否能被整除。
接着,我们定义了另一个函数`primeFactors`,用来将一个数用素数展开。它的实现和C++版的一样,从2到该数,逐个判断是否为素数,如果是素数就尝试将该数除以它,直到无法整除为止,然后继续下一个素数。
最后,在`main`函数中,我们从用户输入一个正整数,然后调用`primeFactors`函数得到素数展开式。然后我们输出这个数和它的素数展开式,中间用`*`符号连接。由于Java中没有C++中的数组,我们使用了`ArrayList`来存储素数因子。