понедельник, 14 октября 2013 г.

Проверьте, является ли введённое пользователем с клавиатуры натуральное число — простым.

Проверьте, является ли введённое пользователем с клавиатуры натуральное число — простым. Постарайтесь не выполнять лишних действий (например, после того, как вы нашли хотя бы один нетривиальный делитель уже ясно, что число составное и проверку продолжать не нужно). Также учтите, что наименьший делитель натурального числа n, если он вообще имеется, обязательно располагается в отрезке [2; √n].


import java.util.*;
public class Zadachi{
    public static void main(String[] args){
        //Создадим переменную, в которую занесем значение числа, заданного пользователем
        int a;
        Scanner scn=new Scanner(System.in);
        System.out.println("Введите натуральное число");
        //Проверка, является ли введенный знак натуральным числом
        if(scn.hasNextInt()){
            //Если проверка пройдена, перемменой а присваивается значение введенного числа
            a=scn.nextInt();
            //Простое число имеет только 2 делителя - 1 и само себя, Также мы знаем, что все остальные делители могут находится только в промежутке 2-а/а, соответственно если хоть на одно число из этого промежутка заданное число будет делиться без остатка, можно считать - что это число - составное, и прекращать дальнейшую проверку
            for(int i=(int)Math.sqrt(a);i>=1;i--){
                if(a%i==0&i!=1){
                    System.out.println("Заданное число - составное");
                    break;
                    }
                if(i==1) System.out.println("Заданное число простое");
            }
        }
        else System.out.println("Ошибка. Введено не число");
        
    }
}

2 комментария:

  1. не верно работает прога

    ОтветитьУдалить
  2. Большое спасибо. Исправлено - ошибка была в строке "for(int i=a/a;i>=1;i--){"

    ОтветитьУдалить