大家下午好
我目前正在尝试创建一个执行以下操作的程序:
开发一个代码,打印用户输入的所有质数 数字。输出示例:
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的每个值,看看它是否能被整除。例如:
--查看 5 是否是质数: 5 不能被 2 整除 5 不能被 3 整除 5 不能被 4 整除 因此 5 是素数
--查看 9 是否是质数: 9 不能被 2 整除 9整除3 因此 9 不是素数
该程序要求您编写嵌套循环(即循环内循环)。将使用一个循环从 2 计数到用户的数字,以便您可以测试每个数字以查看其是否为素数。对于每个数字,x:
上面的问题是关于我的代码的:
导入java.util.*;
公共课Something3 {
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.
}
}
我使用的限制变量有问题吗?任何帮助将非常感激。
您的
isPrime()
方法返回错误的结果。 for循环条件错误i==number
应该是i < number
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.
}
要检查一个数字是否为素数,您不必检查 2 到 N 的整除性,您只需要检查
sqrt(N)
即可。
要查找范围 (N) 内的素数,请使用 埃拉托斯特尼筛法
你的实际问题是number变量。这是您的解决方案。不需要变量number。以下是您的解决方案
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.Scanner;
class prime
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("enter the value of n");
int n=sc.nextInt();
for(int i=2;i<=n;i++)
{
int count=0;
for(int j=1;j<=i;j++)
{
if(i%j==0)
{
count++;
}
}
if(count==2)
{
System.out.println(i+" ");
}
}
}
}
使用 C++ 程序编写一个程序,提示用户输入一个整数,然后打印出该整数之前的所有素数。例如,当用户输入 20 时,程序应打印 2 3 5 7 11 13 17 19。回想一下 如果一个数不能被除了 1 和它本身之外的任何数整除,那么它就是素数。