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
Коробки (Время: 1 сек. Память: 16 Мб Сложность: 19%)
На столе лежат коробка размера A1 × B1 × C1 и коробка размера A2 × B2 × C2. Выясните можно ли одну из этих коробок положить в другую, если разрешены повороты коробок вокруг любого ребра на угол 90 градусов. Входные данные
Первая строка входного файла содержит три целых числа A1, B1 и C1. Вторая строка входного файла содержит три целых числа A2, B2 и C2. Все числа положительны и не превосходят 1000. Выходные данные
Если коробки одинаковы, выведите "Boxes are equal". Если первая коробка может быть положена во вторую, выведите "The first box is smaller than the second one". Если вторая коробка может быть положена в первую, выведите "The first box is larger than the second one". Иначе, выведите "Boxes are incomparable" program gt; label 1; var a,b:array[1..1000]of longint; a1,b1,c1,a2,b2,c2,p,l,n,i,j:longint; begin read(a1,b1,c1,a2,b2,c2); a[1]:=a1;a[2]:=b1;a[3]:=c1; b[1]:=a2;b[2]:=b2;b[3]:=c2; for i:=1 to 2 do begin for j:=1 to 3-i do begin p:=A[j];l:=A[j+1]; if A[j]>A[j+1] then begin A[j]:=l; A[j+1]:=p; end; end; end; for i:=1 to 2 do begin for j:=1 to 3-i do begin p:=b[j];l:=b[j+1]; if b[j]>b[j+1] then begin b[j]:=l; b[j+1]:=p; end; end; end; if(a[1]=b[1])and(a[2]=b[2])and(a[3]=b[3])then begin writeln('Boxes are equal'); goto 1; end; if((a[1]<=b[1])and(a[2]<b[2])and(a[3]<=b[3]))or ((a[1]<b[1])and(a[2]<=b[2])and(a[3]<=b[3]))or ((a[1]<=b[1])and(a[2]<=b[2])and(a[3]<b[3]))then begin writeln('The first box is smaller than the second one'); goto 1; end; if((a[1]>=b[1])and(a[2]>b[2])and(a[3]>=b[3]))or ((a[1]>=b[1])and(a[2]>=b[2])and(a[3]>b[3]))or ((a[1]>b[1])and(a[2]>=b[2])and(a[3]>=b[3]))then begin writeln('The first box is larger than the second one'); goto 1; end; writeln('Boxes are incomparable'); 1: end.
максимальной суммой делителей. Надо было так, пишу на 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
(Время: 1 сек. Память: 16 Мб Сложность: 19%)
На столе лежат коробка размера A1 × B1 × C1 и коробка размера A2 × B2 × C2. Выясните можно ли одну из этих коробок положить в другую, если разрешены повороты коробок вокруг любого ребра на угол 90 градусов.
Входные данные
Первая строка входного файла содержит три целых числа A1, B1 и C1. Вторая строка входного файла содержит три целых числа A2, B2 и C2. Все числа положительны и не превосходят 1000.
Выходные данные
Если коробки одинаковы, выведите "Boxes are equal". Если первая коробка может быть положена во вторую, выведите "The first box is smaller than the second one". Если вторая коробка может быть положена в первую, выведите "The first box is larger than the second one". Иначе, выведите "Boxes are incomparable"
program gt;
label 1;
var a,b:array[1..1000]of longint;
a1,b1,c1,a2,b2,c2,p,l,n,i,j:longint;
begin
read(a1,b1,c1,a2,b2,c2);
a[1]:=a1;a[2]:=b1;a[3]:=c1;
b[1]:=a2;b[2]:=b2;b[3]:=c2;
for i:=1 to 2 do
begin
for j:=1 to 3-i do
begin
p:=A[j];l:=A[j+1];
if A[j]>A[j+1] then begin
A[j]:=l;
A[j+1]:=p;
end;
end;
end;
for i:=1 to 2 do
begin
for j:=1 to 3-i do
begin
p:=b[j];l:=b[j+1];
if b[j]>b[j+1] then begin
b[j]:=l;
b[j+1]:=p;
end;
end;
end;
if(a[1]=b[1])and(a[2]=b[2])and(a[3]=b[3])then begin
writeln('Boxes are equal');
goto 1;
end;
if((a[1]<=b[1])and(a[2]<b[2])and(a[3]<=b[3]))or
((a[1]<b[1])and(a[2]<=b[2])and(a[3]<=b[3]))or
((a[1]<=b[1])and(a[2]<=b[2])and(a[3]<b[3]))then begin
writeln('The first box is smaller than the second one');
goto 1;
end;
if((a[1]>=b[1])and(a[2]>b[2])and(a[3]>=b[3]))or
((a[1]>=b[1])and(a[2]>=b[2])and(a[3]>b[3]))or
((a[1]>b[1])and(a[2]>=b[2])and(a[3]>=b[3]))then begin
writeln('The first box is larger than the second one');
goto 1;
end;
writeln('Boxes are incomparable');
1:
end.