• Помогите написать программу, срочно!!! на любом языке прогр. Даю 49 баллов!!!
    Ограничение времени 1 секунда
    Ограничение памяти 64Mb
    Ввод стандартный ввод или input.txt
    Вывод стандартный вывод или output.txt
    Найти все возможные значения длины гипотенузы в прямоугольном треугольнике с целыми сторонами, если один из катетов имеет длину p, где p — простое число.

    Напоминаем, что простым называется целое положительное число, имеющее ровно два делителя — единицу и самого себя.

    Формат ввода
    Входные данные содержат одно целое число p (2 ≤ p ≤ 109+9, p — простое).

    Формат вывода
    Если пифагоровых треугольников с катетом длины p нет, выведите -1. Иначе выведите возможные длины гипотенуз треугольников, перечисленные в порядке возрастания (то есть от меньшей к большей).

    Пример
    Ввод Вывод
    3 5
    Примечания
    Пояснение к примеру: cуществует только один целочисленный прямоугольный треугольник с катетом равным 3 — классический пифагоров треугольник c длиной гипотенузы, равной 5.

    Решением к данной задаче является программа, написанная на одном из представленных в системе языков программирования. Программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»).

Ответы 9

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

      blake
    • 6 лет назад
    • 0
  • а ты просто скопировала?
    • Автор:

      nikki2
    • 6 лет назад
    • 0
  • с int64 вроде с большими числами выводит, но все равно пишет типа неправильное решение
    • Автор:

      gabriel45
    • 6 лет назад
    • 0
  • А что неправильно? Для простого катета существует ровно одна пифагорова тройка, всё верно написали.
  • нужно int 64 и формулу (p*p-1)div2 + 1
  • На тебе на нормальном языке, и не майся ерундой: javascript:var p=prompt();if(p==2)alert(-1);else alert((p*p-1)/2+1|0);
  • "|0" даже лишнее тут.
    • Автор:

      oprahst8m
    • 6 лет назад
    • 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.

  • var p:integer;

    begin

    readln (p);

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

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

    end.

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years