Java 如何向用户打印素数';输入整数是多少?
各位下午好, 我目前正在尝试创建一个执行以下操作的程序: 开发一个代码,将打印用户输入的所有素数 号码。输出的一个示例:Java 如何向用户打印素数';输入整数是多少?,java,loops,nested,boolean,primes,Java,Loops,Nested,Boolean,Primes,各位下午好, 我目前正在尝试创建一个执行以下操作的程序: 开发一个代码,将打印用户输入的所有素数 号码。输出的一个示例: Enter an integer (2 or above): 19 The prime numbers up to you integer are: 2 3 5 7 11 13 17 19 不幸的是,还有一系列需要满足的“要求”: 如果用户输入的数字低于2,您的程序应打印一条消息,说明该数字无效,然后停止 如果一个数不能被除1和它本身
Enter an integer (2 or above): 19
The prime numbers up to you integer are:
2
3
5
7
11
13
17
19
不幸的是,还有一系列需要满足的“要求”:
- 如果用户输入的数字低于2,您的程序应打印一条消息,说明该数字无效,然后停止
- 如果一个数不能被除1和它本身之外的任何数整除,那么它就是素数
- 对于这个程序,为了测试一个数字是否为素数,您应该尝试将该数字除以从2到1的每个值,以查看它是否等分。例如: --要查看5是否为素数,请执行以下操作: 5不等于2 5不等于3 5不等于4 因此5是质数 --要查看9是否为素数,请执行以下操作: 9不等于2 9除以3 因此9不是质数
- 此程序要求您编写嵌套循环(即循环中的循环)。一个循环将用于从2到用户的数字进行计数,以便您可以测试这些数字中的每一个,以查看它是否为素数。对于这些数字中的每一个,x:
- 嵌套循环将检查从2到x-1的所有值,以查看x是否被其中任何一个平均除
- 您需要使用布尔变量(也称为标志变量)来帮助您确定是否在屏幕上打印数字
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
//Variable declaration.
int limit, number;
//get input till which prime number to be printed
System.out.print("Enter an integer (2 or above): ");
limit = kbd.nextInt();
kbd.close();
//Will print prime numbers till the limit (user entered integer).
number = 2;
if (limit >=2) {
System.out.println("The prim numbers up to your interger are: " + limit+"\n");
for(int i = 0; i <= limit;){
//print prime numbers only
if(isPrime(number)){
System.out.println(number +"\n");
i++;
}
number = number + 1;
}
}
else
System.out.println("Number is not vaild");
}
//Prime number is not divisible by any number other than 1 and itself
//return true if number is prime.
public static boolean isPrime(int number){
for(int i=2; i==number; i++){
if(number%i == 0){
return false; //Number is divisible, thus not prime.
}
}
return true;//The number is prime.
}
publicstaticvoidmain(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
//变量声明。
整数限制,数字;
//获取要打印的素数之前的输入
系统输出打印(“输入整数(2或以上):”;
limit=kbd.nextInt();
kbd.close();
//将打印素数直到限制(用户输入的整数)。
数量=2;
如果(限制>=2){
System.out.println(“整数前的基本数字为:“+limit+”\n”);
对于(int i=0;i您的实际问题是数字变量。这是您的解决方案。不需要变量数字。下面是您的解决方案
import java.util.*;
public class Something3 {
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
// Variable declaration.
int limit;
// get input till which prime number to be printed
System.out.print("Enter an integer (2 or above): ");
limit = kbd.nextInt();
kbd.close();
if (limit >= 2) {
System.out.println("The prim numbers up to your interger are: "
+ limit + "\n");
for (int i = 1; i <= limit; i++) {
// print prime numbers only
if (isPrime(i)) {
System.out.println(i);
}
}
} else
System.out.println("Number is not vaild");
}
// Prime number is not divisible by any number other than 1 and itself
// return true if number is prime.
public static boolean isPrime(int n) {
if (n % 2 == 0)
// The only even prime is 2.
return (n == 2);
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0)
return false;
}
return true;
}
}
import java.util.*;
公开课{
公共静态void main(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
//变量声明。
整数极限;
//获取要打印的素数之前的输入
系统输出打印(“输入整数(2或以上):”;
limit=kbd.nextInt();
kbd.close();
如果(限制>=2){
System.out.println(“整数之前的基本数字是:”
+限额+“\n”);
对于(int i=1;i您的实际问题是数字变量。这是您的解决方案。不需要变量数字。下面是您的解决方案
import java.util.*;
public class Something3 {
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
// Variable declaration.
int limit;
// get input till which prime number to be printed
System.out.print("Enter an integer (2 or above): ");
limit = kbd.nextInt();
kbd.close();
if (limit >= 2) {
System.out.println("The prim numbers up to your interger are: "
+ limit + "\n");
for (int i = 1; i <= limit; i++) {
// print prime numbers only
if (isPrime(i)) {
System.out.println(i);
}
}
} else
System.out.println("Number is not vaild");
}
// Prime number is not divisible by any number other than 1 and itself
// return true if number is prime.
public static boolean isPrime(int n) {
if (n % 2 == 0)
// The only even prime is 2.
return (n == 2);
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0)
return false;
}
return true;
}
}
import java.util.*;
公开课{
公共静态void main(字符串[]args){
扫描仪kbd=新扫描仪(System.in);
//变量声明。
整数极限;
//获取要打印的素数之前的输入
系统输出打印(“输入整数(2或以上):”;
limit=kbd.nextInt();
kbd.close();
如果(限制>=2){
System.out.println(“整数之前的基本数字是:”
+限额+“\n”);
for(int i=1;i您的isPrime()
方法返回了错误的结果。for循环条件是错误的i==number
它应该是i
public static boolean isPrime(int number){
for(int i=2; i*i <= number; i++){
if( number % i == 0){
return false; // Number is divisible, thus not prime.
}
}
return true; //The number is prime.
}
public静态布尔值isPrime(整数){
for(int i=2;i*i您的isPrime()
方法返回了错误的结果。for循环条件是错误的i==number
它应该是i
public static boolean isPrime(int number){
for(int i=2; i*i <= number; i++){
if( number % i == 0){
return false; // Number is divisible, thus not prime.
}
}
return true; //The number is prime.
}
public静态布尔值isPrime(整数){
对于(inti=2;i*iimport java.util.Scanner;
类素数
{
公共静态void main(字符串参数[])
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入n的值”);
int n=sc.nextInt();
对于(inti=2;iimport java.util.Scanner;
类素数
{
公共静态void main(字符串参数[])
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入n的值”);
int n=sc.nextInt();
对于(int i=2;iIn main for,使用number而不是i。在main for,使用number而不是i。指出这个问题也有帮助。非常感谢您花时间编写答案。isPrime()
最初发布的方法因n==2而失败。我已对其进行了编辑并添加了注释。指出此问题也有帮助。非常感谢您花时间编写答案。最初发布的isPrime()
方法因n==2而失败。我已对其进行了编辑并添加了注释。