Упражнения на Java: Проверьте, является ли данное число простым круговым или нет
Java-номера: упражнение 17 с решением
Напишите программу на Java, чтобы проверить, является ли данное число круговым простым числом или нет.
Круговое простое число: Круговое простое число - это простое число со свойством, что число, генерируемое на каждом промежуточном шаге при циклическом перестановке его (основание 10) цифр, будет простым.
Например, 1193 - это круговое простое число, поскольку с 1931 года 9311 и 3119 также являются простыми числами. Круговое простое число, состоящее, по крайней мере, из двух цифр, может состоять только из комбинации цифр 1, 3, 7 или 9, поскольку наличие 0, 2, 4, 6 или 8 в качестве последней цифры делает число, делимое на 2, и наличие 0 или 5, поскольку последняя цифра делит ее на 5.
Тестовые данные
Введите число: 35
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.Scanner;
public class Example17 {
public static void main( String args[] ){
int num;
Scanner sc = new Scanner( System.in );
System.out.print("Input a number: ");
num = sc.nextInt();
int num_of_digits = 0, divisor_part=1, circular_num = num;
boolean allPrime = true;
for( int i = num; i > 0; i /= 10 ){
num_of_digits++;
divisor_part *=10;
}
divisor_part /=10;
do{
circular_num = circulate_func( circular_num, divisor_part );
if( !isPrime( circular_num ) ) allPrime=false;
}while( circular_num != num );
if( allPrime ) System.out.println("It is Circular Prime number." );
else System.out.println("It is not a Circular Prime number." );
}
public static boolean isPrime( int n ){
int factorCount = 0;
if( n < 2 ) return false;
else if( n == 2 ) return true;
else if( n % 2 == 0 ) return false;
else{
int num = (int) Math.sqrt( n );
for( int i = 3 ; i <= num; i+=2 ){
if( n %i == 0 ){
return false;
}
}
}
return true;
}
public static int circulate_func( int n, int divisor_part ){
if( n < 10 ) return n;
else return ( n % divisor_part ) * 10 + n / divisor_part;
}
}
Пример вывода:
Введите число: 35 Это не круговое простое число.
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы проверить, являются ли два числа дружественными числами или нет.
Далее: написать программу на Java, чтобы проверить, является ли число кубом или нет.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования