Помогите написать программу, срочно!!! ** любом языке прогр. Даю 49 баллов!!! Ограничение...

0 голосов
56 просмотров

Помогите написать программу, срочно!!! на любом языке прогр. Даю 49 баллов!!! Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt Найти все возможные значения длины гипотенузы в прямоугольном треугольнике с целыми сторонами, если один из катетов имеет длину p, где p — простое число. Напоминаем, что простым называется целое положительное число, имеющее ровно два делителя — единицу и самого себя. Формат ввода Входные данные содержат одно целое число p (2 ≤ p ≤ 109+9, p — простое). Формат вывода Если пифагоровых треугольников с катетом длины p нет, выведите -1. Иначе выведите возможные длины гипотенуз треугольников, перечисленные в порядке возрастания (то есть от меньшей к большей). Пример Ввод Вывод 3 5 Примечания Пояснение к примеру: cуществует только один целочисленный прямоугольный треугольник с катетом равным 3 — классический пифагоров треугольник c длиной гипотенузы, равной 5. Решением к данной задаче является программа, написанная на одном из представленных в системе языков программирования. Программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»).


Информатика (2.0k баллов) | 56 просмотров
Дано ответов: 2
0 голосов

var a,i:int64;

 x:double;

 s,l:string;

 begin

 readln(a);

 s:='';

 l:=s;

if (a+1) mod 4=0 then

i:=a+1

else

i:=a+3;

 while a*a>=2*i+1 do begin

 x:=sqrt(i*i+a*a);

 if x-int(x)=0 then

 s:=s+FloatTostr(x)+' ';

 i+=4;

 end;

 if l=s then writeln('-1') else

 writeln(s);

 end.

(55 баллов)
0

выдает ошибку при компиляции((

0

а ты просто скопировала?

0 голосов

var p:integer;

begin

readln (p);

if (p=2)then writeln ('-1') else

writeln ((p*p-1)/2+1);

end.


(36 баллов)
0

не работает

0

с int64 вроде с большими числами выводит, но все равно пишет типа неправильное решение

0

А что неправильно? Для простого катета существует ровно одна пифагорова тройка, всё верно написали.

0

нужно int 64 и формулу (p*p-1)div2 + 1

0

На тебе на нормальном языке, и не майся ерундой: javascript:var p=prompt();if(p==2)alert(-1);else alert((p*p-1)/2+1|0);

0

"|0" даже лишнее тут.