判断一个数是否为质数
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");
}
}}}
如果我们在这里讨论的是一个超级简单的实现,您可以先检查数字是否使用余数运算符,即如果 number % 2 == 0
,则 prime = true
。如果不是这种情况,设置 count = 3
并设置一个 while
循环,终止条件为 while (count < number)
。在 while
循环中,检查 number
和 count
的余数是否为零。如果是,它就是质数。如果不是,则将 count
递增 1 并继续循环。
您应该考虑如何用自然语言表述您的问题。例如:素数是一个只能被其自身和 1 整除的数。 或相反:对于大于 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");
}
我刚开始 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");
}
}}}
如果我们在这里讨论的是一个超级简单的实现,您可以先检查数字是否使用余数运算符,即如果 number % 2 == 0
,则 prime = true
。如果不是这种情况,设置 count = 3
并设置一个 while
循环,终止条件为 while (count < number)
。在 while
循环中,检查 number
和 count
的余数是否为零。如果是,它就是质数。如果不是,则将 count
递增 1 并继续循环。
您应该考虑如何用自然语言表述您的问题。例如:素数是一个只能被其自身和 1 整除的数。 或相反:对于大于 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");
}