• Люди, которые думают, что ненавидят компьютеры, на самом деле ненавидят плохих программистов.

Программа поиска простых чисел

Программа ищет простые числа в диапазоне от 2 до введённого пользователем числа и выводит их на экран в столбик. проверка на простоту осуществляется перебором делителей от 2 до корня из проверяемого числа.

Вы можете скопировать указанный ниже код программы в IDE MS Small Basic и запустить:

 

TextWindow.WriteLine("Поиск простых чисел.")

TextWindow.Write("Введите максимальное число: ") ' Запрос числа у пользователя

MainNumber = TextWindow.ReadNumber() ' Пользователь вводит число

If MainNumber < 2 Then  ' Проверка на неподходящее число (меньшее 2)

TextWindow.WriteLine("Число меньше 2!") ' Выводим предупреждение

Program.End() ' Завершаем программу

EndIf

' Проверка на целое число

IntNumber = Math.Floor(MainNumber) ' убираем дробную часть (усекаем число до целого)

If IntNumber < MainNumber Then ' Если изначальное число больше усечённого, то...

TextWindow.WriteLine("Число не целое!") ' Выводим предупреждение

Program.End() ' Завершаем программу

EndIf

TextWindow.WriteLine(2) ' выводим 2 в качестве первого простого числа (данный алгоритм не позволяет распознать 2 как простое число, но мы это - и так знаем)

For TestNumber = 2 To MainNumber ' перебор всех чисел от 2 до заданного числа

' определяем максимальный делитель для проверки:

MaxDiv = Math.Ceiling(Math.SquareRoot(TestNumber)) ' получаем целую часть от корня проверяемого числа

For Divider = 2 To MaxDiv ' Перебор делителей

If Math.Remainder(TestNumber, Divider) = 0 Then ' Если остаток от деления равен нулю

Goto out ' число - точно составное! - переходим к следующему числу (выходим во внешний цикл)

EndIf

EndFor

' если мы перебрали в цикле все возможные делители и не вылетели, значит число - простое

TextWindow.WriteLine(TestNumber) ' печатаем число

out: ' пойдём проверять следующее число

EndFor


Поделиться: