from math import sqrt, acos, pi
A1,B1,C1=map(float,input('A1 B1 C1 через пробел: ').split(' '))
A2,B2,C2=map(float,input('A2 B2 C2 через пробел: ').split(' '))
if A1*A2+B1*B2==0: print('прямые перпендикулярны')
else:
ang=(A1*A2+B1*B2)/(sqrt(A1*A1+B1*B1)*sqrt(A2*A2+B2*B2))
ang=round(acos(ang)*180/pi)
print('угол между прямыми: ',ang,' град.')
>>>
A1 B1 C1 через пробел: -1 1 -3
A2 B2 C2 через пробел: 1 1 -1
прямые перпендикулярны
>>>
A1 B1 C1 через пробел: 1.5 -3.8 5
A2 B2 C2 через пробел: 2.6 3.4 2
угол между прямыми: 121 град.
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0
var
a,i,b,r,n,j,bug:integer;
s,se,slo,slof:string;
procedure preob(var a,b,n:integer; var se:string);
begin
repeat
b:=a mod n;
a:=a div n;
str(b,se);
s+=se;
until (a<=n-1);
end;
begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.
//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-