Я написал программу для определения факторов заданного числа. Сначала нужно, конечно, проверить, является ли число простым числом. Это работает, но если число является квадрат числа она признает его как штрих ...Программа, распознающая квадратные числа как простые числа
public class factors {
public static void main (String [] args) {
System.out.println("Enter the number you need factors of");
int base = Kon.readInt();
for (int i = 2; i < base; i++) {
int a = base % i;
if (a == 0) {
break;
}
else {
System.out.println(base+" is a prime number, so it has no factors");
break;
}
}
for (int i = 3; i < base; i++) {
int res = base % i;
if (res == 0) {
int fac = base/i;
System.out.println(i+" and "+fac+" are factors of "+base);
}
}
}
}
Так что, если я вхожу 64, он говорит, что это простой, но потом говорит мне, что 8 и 8 являются факторами 64 в следующей строке
Кто-нибудь знает, в чем проблема?
Это не говорит 64 является простым для меня. Тем не менее, он подходит для 9, поэтому см. Ответы ниже. –
Возможный дубликат [Определение простых чисел Java] (http://stackoverflow.com/questions/18625793/determining-prime-numbers-java) и [Как определить число и определить, является ли его простым числом] (http://stackoverflow.com/questions/18947244/how-to-factor-a-number-and-determine-whether-its-a-prime-number) и [Хранение моего первичного генератора в массив] (http: // stackoverflow. com/questions/20020526/storing-my-prime-generator-in-an-array) –