Неправильный синтаксис около конструкции "!"
Объясните, пожалуйста, какая ошибка в выражении, переменные типа int
(@PersonId % @bufPersonId)!= @PersonId --строка взята из следующего кода
--Задание Напишите алгоритм, определяющий является ли значение некоторой целочисленной переменной простым числом.
--План. Уменьшаем делитель на 1 пока не получим в остатке от деления исходного числа на делитель нуль(составное) либо исходное число(простое)
--Вариант в котором делитель будет также простым числом пока не рассматриваю
DECLARE @PersonId INT = 37 --исходное число
DECLARE @bufPersonId INT = @PersonId --делитель
while ((@PersonId % @bufPersonId)!= @PersonId) AND ((@PersonId % (@bufPersonId-1))!= 0) --пока @bufPersonId не равен 1 и не найден делитель
SET @bufPersonId = @bufPersonId-1 --уменьшаем делитель на 1
IF (@bufPersonId = 1) --если делитель еденица
Print ('Это простое число')
ELSE --если делитель найден
Print ('Это не простое число')
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Обновите скрипт
DECLARE @PersonId INT = 37 --исходное число
DECLARE @bufPersonId INT = @PersonId --делитель
while ((@PersonId % @bufPersonId) <> @PersonId) AND
((@PersonId % (@bufPersonId-1)) <> 0) --пока @bufPersonId не равен 1 и не найден делитель
SET @bufPersonId = @bufPersonId-1 --уменьшаем делитель на 1
IF (@bufPersonId = 1) --если делитель еденица
Print ('Это простое число')
ELSE --если делитель найден
Print ('Это не простое число')
Добавил вывод делителя после каждого сета. Доходит до 2-х (хотя предполагалось до 1 и останавливается. При этом независимо от агруметнта выдает вариант, что число не простое
