Проверьте, является ли введённое пользователем с клавиатуры натуральное число — простым. Постарайтесь не выполнять лишних действий (например, после того, как вы нашли хотя бы один нетривиальный делитель уже ясно, что число составное и проверку продолжать не нужно). Также учтите, что наименьший делитель натурального числа 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("Ошибка. Введено не число");
}
}
не верно работает прога
ОтветитьУдалитьБольшое спасибо. Исправлено - ошибка была в строке "for(int i=a/a;i>=1;i--){"
ОтветитьУдалить