кодесурса

Упражнения на Java: Проверьте, является ли данное число простым круговым или нет

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code