Лічильник
Сьогодні Разом
Відвідувань 24 5273698
Авторізацій 0 423086
Користувачів 0 2728
Статья

39. Финал


И наконец, мы готовы записать наиболее совершенный алгоритм проверки числа. Нам уже не важно сколько делителей, один или несколько, нужен хотя бы один, чтобы сделать вывод, что число не простое. Поэтому заменим счетчик числа найденных делителей флагом - переменная логического типа, которая будет признаком "простоты" числа. Кроме того, мы уберем требование, что исходное число должно быть больше единицы, изначально присвоив флагу значение false, если это не так, и заменим вычисление корня квадратного, умножением:
 d := 2;
 flag := (n > 1);
 while (flag) and (d * d <= n) do
  begin
   f := n mod d <> 0;
   inc(d);
  end;
 if flag
  then <Число n простое>
  else <Число n не простое>
Или на C/C++
 int d = 2;
 bool flag = n > 1;
 while (flag && d * d <= n)
   f = n % d++ != 0;
 if (flag)
  <Число n простое>
 else <Число n не простое>
Мы потрудились на славу! Создан алгоритм, который за приемлемое время проверяет является ли заданное число простым или нет!