Мне нужно написать логический метод, который проверяет, является ли число n круговым простым, используя только целые вычисления, так что нет строк. Я написал еще два метода, которые нужно включить.Проверка того, является ли целое число круговым простым числом без использования String
boolean isPrime(int n) {
if (n < 1) {
return false;
} else if (n == 1 || n == 2) {
return true;
} else if (n % 2 != 0) {
for (int i = 3; i < n; i+=2) {
if (n % i == 0) {
return false;
}
}
return true;
} else {
return false;
}
}
Это проверяет, является ли число простым.
int largestPowerOfTen(int n) {
for (int i = 1; i < n * 10; i*=10) {
if (n/i == 0) {
return i/10;
}
}
return 1;
}
Это возвращает наибольшую мощность десяти из числа. Например, 23 вернет 10, 704 вернет 100 и т. Д.
У меня возникла идея поместить каждую цифру в массив и переместить цифры оттуда, но я застрял в движущейся части.
boolean isCircularPrime(int n) {
ArrayList<Integer> k = new ArrayList<Integer>();
int i = 0;
while (n != 0) {
k.add(n % 10);
n /= 10;
i++;
}
//???
}
Так как мне перемещать цифры вокруг?
Вы не должны нуждаться в ArrayList или строку: Вычислить последнюю цифру в качестве 'n' по модулю 10. Разделить' n' на 10 и округлить. Добавьте последнюю цифру раз 'mostPowerOfTen (n)' в 'n'. Теперь вы должны повернуть «n» на одно место справа. –