我有一种检查数字是否为素数的方法。我需要编写一个允许用户输入数字的程序,然后程序将显示下一个最大的素数。这就是我到目前为止所做的......它非常残酷,因为我是一名初学CS学生,他获得了这些材料,却无法以我想要的方式完全实现代码。
package nextprime;
import java.util.Scanner;
public class NextPrime {
public static boolean isPrime(int number) {
for (int divisor = 2; divisor <= number / 2; divisor++) {
if (number % divisor == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numberInput;
System.out.println("Enter a number: ");
numberInput = input.nextInt();
int end = numberInput + 2;
if (isPrime(end)) {
System.out.println(end);
}
int i;
for (i = numberInput; i < end; i++) {
}
if (isPrime(i)) {
System.out.println(i);
}
}
}
答案 0 :(得分:0)
不确定end
的逻辑是什么,也许你需要有一个边界。如果没有,那么您可以删除end
逻辑并将for
循环替换为:
for(i = numberInput;!isPrime(i); i ++);
或者您可以使用while
循环,例如:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numberInput;
System.out.println("Enter a number: ");
numberInput = input.nextInt();
if (isPrime(numberInput))
numberInput++;
while (!isPrime(numberInput))
numberInput++;
System.out.println(numberInput);
}
答案 1 :(得分:0)
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a number");
int number = input.nextInt();
while(!isPrime(number)){
number++;
}
System.out.println(number+" is the minimum prime number.");
}
答案 2 :(得分:0)
代码用c#.net编写。您可以将其转换为java。素数没有检查以传统方式完成。你可以使用自己的检查方法。在此程序中,不使用用户定义的函数。所有代码都可以写在主块中。
int number= Convert.ToInt32(textBox1.Text);
int counter;
counter = 0;
for (int divisor = 1; divisor < number; divisor++)
{
if (number % divisor == 0)
counter++;
}
if (counter == 1)
richTextBox1.Text = number.ToString() + " is a prime number";
else
{
number++;
while (number> 0)
{
counter = 0;
for (int divisor = 1; divisor < number; divisor++)
{
if (number % divisor == 0)
counter++;
}
if (counter == 1)
{
richTextBox1.Text = "Next prime numbere is " + number.ToString();
break;
}
number++;
}
}