1)Универсальный, но долгий
for i in range(1000000,1500001):
d=1
k=0
while d*d<=i:
if i%d==0:
if i//d-d<=110:
k+=1
if k==3:
print(i)
break
d+=1
2) Быстрый , но значения для второго цикла необходимо высчитывать вручную
for i in range(1000000,1500001):
d=1
k=0
a=set()
for j in range(940,1300):
if i%j==0:
if i//j-j<=110 and i//j-j>=0:
a.add(i//j-j)
if len(a)==3:
print(i)
break
Объяснение:
p=(a+b+c)/2
Программа:
program z;
var a1,b1,c1,a2,b2,c2,p1,p2,s1,s2:real;
begin
readln(a1,b1,c1); {ввод длин сторон первого треугольника}
p1:=(a1+b1+c1)/2; {полупериметр первого треугольника}
s1:=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1)); {площадь первого треугольника}
readln(a2,b2,c2); {ввод длин сторон второго треугольника}
p2:=(a2+b2+c2)/2; {полупериметр второго треугольника}
s2:=sqrt(p2*(p2-a2)*(p2-b2)*(p2-c2)); {площадь второго треугольника}
if s1=s2 {если площади треугольников равны}
then writeln('Yes') {то вывести положительный ответ}
else writeln('No'); {иначе вывести отрицательный ответ}
end.