输入一到1到1000以内的质数,用java
时间: 2023-04-05 17:01:28 浏览: 56
很高兴回答你的问题。以下是一个Java程序,可以输入1到1000以内的质数:
import java.util.Scanner;
public class PrimeNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个1到1000以内的质数:");
int num = input.nextInt();
boolean isPrime = true;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.println(num + "是一个质数。");
} else {
System.out.println(num + "不是一个质数。");
}
}
}
希望这个程序能够帮助到你。
相关问题
用java 根据键盘输入的n值 求n以内的素数
以下是使用Java编写的程序,可以根据键盘输入的n值求n以内的素数。
```java
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数n:");
int n = input.nextInt();
boolean[] isPrime = new boolean[n + 1];
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
System.out.print("n以内的素数有:");
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
}
}
```
该程序首先使用Scanner类从键盘读取一个正整数n,然后创建一个布尔类型的数组isPrime,长度为n+1,用来标记每个数是否为素数。数组中的每个元素初值都为true,表示每个数都是素数。
接着,程序从2开始遍历数组,如果当前元素i是素数,则将i的所有倍数标记为非素数。这里使用了一个内层循环,从i的平方开始遍历,每次增加i,直到大于n为止。
最后,程序输出所有标记为素数的元素。
需要注意的是,该程序使用了“埃氏筛法”(Sieve of Eratosthenes)来找出n以内的素数。这种方法的时间复杂度为O(nloglogn),比试除法更快。
java从键盘输入求100以内的素数
好的,以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数n:");
int n = scanner.nextInt();
scanner.close();
System.out.println("1~" + n + "的素数有:");
for (int i = 2; i <= n; i++) {
boolean isPrime = true; // 标记i是否为素数
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.print(i + " ");
}
}
}
}
```
运行程序后,输入一个正整数n,程序会输出1~n之间的所有素数。