Нужно взять сумму произведений числителей и знаменателей крест накрест, то есть a на d, b на c, и поделить на произведение знаменателей. В математической форме, чтоб понятнее было: . Дальше можно сократить: для удобства запишем получившийся числитель в переменную n, а знаменатель - в m. Найдем для этого наибольший общий делитель, и для данного алгоритма запишем значение m в переменную m1, n в n1, чтобы не портить их значения: Если n1>m1, поменяем значение переменной n1 на n1-m1, если же m1>n1, то сделаем наоборот - присвоим переменной m значение m1-n1, повторим этот алгоритм до тех пор, пока m1>0 и n1>0. После завершения цикла выберем большее число из m и n, и оно будет наиб. общим делителем. Теперь вернемся к дроби m/n. Поделим m и n на получившийся наибольший общий делитель. Выведем получившиеся результаты. m - в качестве числителя, и n - знаменателя. Дроби суммированы.
Vivdarkbloom, к сожалению, нашел сумму всех чисел от 2 до N, а не число с максимальной суммой делителей. Надо было так, пишу на Visual Basic Sub Command1_Click() Rem Программа запускается по нажатию кнопки Command1 на форме Dim n As Integer, Summa As Integer, Max As Integer Dim Maxn As Integer, i As Integer, k As Integer n = Text1.Text ' Это текстовое поле на форме, куда вводится n Max = 1: Maxn = 1 For i = 2 To n Summa = 0 For k = 1 To i If i Mod k = 0 Then Summa = Summa + k ' Если k - делитель i, то прибавляем Next k If Summa > Max Then ' Если сумма больше максимальной Max = Summa ' Сохраняем сумму Maxn = i ' И сохраняем число i. End If Next i Text2.Text = Maxn ' Это второе текстовое поле, куда выводится результат End Sub
максимальной суммой делителей. Надо было так, пишу на Visual Basic
Sub Command1_Click()
Rem Программа запускается по нажатию кнопки Command1 на форме
Dim n As Integer, Summa As Integer, Max As Integer
Dim Maxn As Integer, i As Integer, k As Integer
n = Text1.Text ' Это текстовое поле на форме, куда вводится n
Max = 1: Maxn = 1
For i = 2 To n
Summa = 0
For k = 1 To i
If i Mod k = 0 Then Summa = Summa + k ' Если k - делитель i, то прибавляем
Next k
If Summa > Max Then ' Если сумма больше максимальной
Max = Summa ' Сохраняем сумму
Maxn = i ' И сохраняем число i.
End If
Next i
Text2.Text = Maxn ' Это второе текстовое поле, куда выводится результат
End Sub