[英]Finding if a number is prime
我刚刚开始了一个java课程。 任务是编写一个代码来输出一个数是否为素数。
这就是我所拥有的。 它出现了很多错误。 我找到了很多答案,但他们都说要使用我们没有学过的台词。
public class PrimeNumbers2 {
public static void main(String[] args) {
int number = 9;
int count = 2;
Boolean prime = true;
if (number % count == 0) {
prime = true;
}
else {
for (count = count + 1) {
if (count + 1>= number) {
prime = false;
}
else
{
prime = false;
}
}
if (prime == true)
{
System.out.println("Number is prime");
}
else
{
System.out.println("number is not prime");
}
}}}
您应该考虑如何用自然语言表述您的问题。 例如:素数是一个只能被它自己和 1 整除的数字。或者反过来:对于大于 1 和小于我的数字范围内的每个数字,不应该有除法器。
要现在用简单的 Java 代码来表述您的问题,请尝试实现您的语句。
for(int count=2; count < number; count++) {
if(number % count == 0) {
System.out.println("Number is not a prime!");
// Since we are finished return and do no more iterations
return;
}
}
// we iterated all possible numbers and can return successfully
System.out.println("Number is a prime");
还要确保提前检查边缘情况。 例如负数。 请注意,这是一种低效的解决方案,但很直接。
您的代码中有多个错误和逻辑错误。 这里已经清理干净了。
int number = 15;
int count = 2;
boolean prime = true;
for (int i = count; i <= number/2; i++ ) {
if (number % i == 0) {
prime = false;
}
}
if (prime == true)
{
System.out.println("Number is prime");
}
else
{
System.out.println("number is not prime");
}
如果我们在这里谈论一个超级简单的实现,您可以首先检查数字是否使用余数运算符,即,如果number % 2 == 0
,则prime = true
。 如果不是这种情况,请设置count = 3
并使用终止条件while (count < number)
设置while
循环。 在while
循环中,检查number
和count
的余count
是否为零。 如果是,它是一个质数。 如果不是,则将count
加count
继续循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.