• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Помогите с разяснением

  • Автор темы xlewdx
  • Дата начала
X

xlewdx

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

наити три простых числа в интервале 10 до 99 , величины которых образуют стороры треугольника
код в визуал беисике

Private Sub Command1_Click()

Dim p(3)
pn = 0 ======>не понятно

'поиск простых чисел =======> не понятно
5 For i = 10 To 99 ====> не понятно что за цифрв 5
f = 0

For j = 2 To i - 1 ====== не понятно
If i Mod j = 0 Then f = 1
Next


If f = 0 Then

pn = pn + 1
p(pn) = i
If pn = 3 Then GoTo 10 ======> тут все не понятно
End If
Next

10 =====> что это за число 10 ,почему оно тут.

a = p(1)
b = p(2)
c = p(3)

'проверка неравенств треугольника
If a + b <= c Or a + c <= b Or b + c <= a Then p(1) = p(2): p(2) = p(3): pn = 2: GoTo 5 ==== тоже не поиму

Text1.Text = a
Text2.Text = b
Text3.Text = c

Заранее спасибо
 
G

gaw

Private Sub Command1_Click()

Dim p(3) ' объявляем массив для трех
pn = 0 ' пока количество найденных чисел равно 0

'поиск простых чисел =======> не понятно
5 ' метка для возврата, если не выполняется условие треугольника
For i = 10 To 99 ' в цикле от 10 до 99 /по условию задачи/
f = 0 ' признак простого числа

For j = 2 To i - 1 ' в цикле от 2 (на 1 делить тривиально)
'до i - 1 /быстрее до sqr(i)/
If i Mod j = 0 Then f = 1 'если остаток от деления i на j
' равен 0 /не простое/-то принак простого числа =1
Next

'если в цикле не изменился признак f = 0
If f = 0 Then

pn = pn + 1 'то увеличиваем количество найденных на 1
p(pn) = i ' и записываем найденное число в массив
If pn = 3 Then GoTo 10 'если таких чисел 3 (по условию) то переходим на метку 10
End If ' если меньше 3 , - продолжаем цикл
Next

10 'метка перехода в случае - 3 числа найдены

a = p(1)
b = p(2)
c = p(3)

'проверка неравенств треугольника
'если хотя бы одно из условий выполнено то
If a + b <= c Or a + c <= b Or b + c <= a Then _
p(1) = p(2): p(2) = p(3): pn = 2 'первый елемент как бы отбрасываем
'оставляя 2 и 3 и их количество принимаем 2
GoTo 5 'в этом случае возвращаемся на метку 5 для поиска 3 числа
End If
'в случае невыполнения ни одного из условий (выше)
'считаем, что три числа согласно условию найдены (выводим их)
Text1.Text = a
Text2.Text = b
Text3.Text = c
 
X

xlewdx

Спасибо огромное Вы меня выручили очень.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!