Я пытался написать код, который принял максимальное число, и дал мне все простые числа от 2 до максимального числа. Он почти работает, но у меня возникает проблема, которая печатает все простые числа, но также печатает результат умножения того же простого числа. Например, он будет печатать 2,3,4,5,7,9, которые представляют собой все простые числа от 0 до 10, но также печатает дополнительные цифры, которые составляют 2 * 2, 3 * 3 и так далее. Пожалуйста, направляйте меня в правильном направлении, чтобы закончить эту программу.Поиск простых чисел Java
public class PrimeNumbers
{
public static void main(String[] args)
{
int max = 400;
//Runs through all the numbers between 2 and max, checks if
//the number is prime and prints it
for(int num = 2; num < max; ++num)
{
if(isPrimeNumber(num))
{
System.out.println(num);
}
}
}
//method to find all prime numbers
public static boolean isPrimeNumber(int number)
{
for(int mod = 2; mod < Math.sqrt(number); ++mod)
{
if(number % mod == 0)
{
return false;
}
}
return true;
}
}
4 не простое, 9 не простое ... – Alboz
Даже если компилятор, вероятно, рядный вызов 'Math.sqrt', я бы рекомендовал вам сделать это самостоятельно. – Dici
Я знаю это, поэтому я сказал, что он печатает все простые числа плюс некоторые дополнительные числа, которые не являются первыми. – ed1234567