Czy mój trójkąt ma rację?

47

Biorąc pod uwagę a, b, cdługość trzech boków trójkąta, powiedzmy, czy trójkąt jest ustawiony pod kątem prostym (tj. Ma jeden kąt równy 90 stopni), czy nie.

Wejście

Trzy dodatnie wartości całkowite w dowolnej kolejności

Wynik

Albo specyficzny prawdziwe wyjścia ( true, 1, yes, ...) lub wyjście specyficzny false ( false, 0, no, ...)

Przykład

5, 3, 4        --> yes
3, 5, 4        --> yes
12, 37, 35     --> yes
21, 38, 50     --> no
210, 308, 250  --> no

Zasady

  • Dane wejściowe i wyjściowe można podawać w dowolnym dogodnym formacie .
  • W swoim zgłoszeniu proszę podać prawdziwe i fałszywe wartości.
  • Nie trzeba obsługiwać wartości ujemnych ani potrójnych niepoprawnych krawędzi
  • Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
  • Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
  • Standardowe luki są zabronione.
  • To jest więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
mdahmoune
źródło
1
Czy musimy obsługiwać wartości ujemne, czy trzykrotnie nieważne krawędzie?
user202729,
2
Bardzo podobne . Zostawię to reszcie społeczności, aby zdecydowała, czy to duplikat.
Cyfrowa trauma
2
Myślę, że użycie współrzędnych zamiast długości znacząco zmienia wyzwanie
Luis Mendo
8
Nie ma trójkąta o długości 21, 38, 5, ponieważ 21 + 5 <38 . Czy to zamierzony przypadek patologiczny, z którym musimy sobie poradzić?
Kevin
1
@ Kevin nie, nie musisz zajmować się tą sprawą. User202729 już zadał to pytanie :)
mdahmoune

Odpowiedzi:

37

Galaretka , 5 bajtów

²µSHe

Wypróbuj online!

Uwaga techniczna: bajty są liczone na stronie kodowej Jelly.

Wyjaśnienie:

²µSHe  Main link.
²      Square each number.
 µ     With the new list,
  S    calculate its sum,
   H   and halve it.
    e  Check if the result exists in the new list (squared input)

Problem jest równoznaczny z a, b, cpodaniem trzech liczb i pytaniem, czy istnieje taka permutacja a² + b² = c². Jest to równoważne z tym, czy (a² + b² + c²) ÷ 2jest jednym z a², b² or c², więc program po prostu to sprawdza.

użytkownik202729
źródło
cóż ... galaretę.
Félix Gagnon-Grenier
1
Tylko uwaga techniczna: symbole ²i µkosztują dwa bajty w UTF-8, więc twój kod ma w rzeczywistości 7 bajtów, a nie 5
Charlie
2
@Charlie Odpowiedź zredagowana w celu wyjaśnienia.
user202729,
20

Python 2 , 37 bajtów

a,b,c=sorted(input())
1/(a*a+b*b-c*c)

Wypróbuj online!

-2 dzięki FlipTack .
-1 dzięki Craig Gidney .

Dane wyjściowe za pośrednictwem kodu wyjścia ( 0= fałsz, 1= prawda).

Erik the Outgolfer
źródło
Bah. Przyszedł z tą samą odpowiedzią. Możesz zmodyfikować pakiet testowy, aby zezwolił na dowolną liczbę przypadków testowych: patrz tutaj
mbomb007
@ mbomb007 exec(code)hmmm, dlaczego exec (code)zamiast exec code? : D ;-p
Erik the Outgolfer
Haha, w jaki sposób ta odpowiedź ma dwa razy więcej głosów niż krótsza xnor? Może ludziom podoba się słodka
prostota
1
@FlipTack ¯_ (ツ) _ / ¯ (również xnora nie ma w Pythonie 2)
Erik the Outgolfer
@EriktheOutgolfer Ponieważ płyta grzewcza nie jest częścią do gry w golfa. Zrobiłem to, aby działało w Pythonie 2 lub 3.
mbomb007,
17

Java 8, 44 bajty

(a,b,c)->(a*=a)+(b*=b)==(c*=c)|a+c==b|b+c==a

Wyjaśnienie:

Wypróbuj tutaj.

(a,b,c)->                // Method with three integer parameters and boolean return-type
  (a*=a)+(b*=b)==(c*=c)  //  Return if `a*a + b*b == c*c`
  |a+c==b                //  or `a*a + c*c == b*b`
  |b+c==a                //  or `b*b + c*c == a*a`
                         // End of method (implicit / single-line return-statement)
Kevin Cruijssen
źródło
Czy to działa bez nawiasów w sieci (c*=c)? *=Może mieć precidence nad ==i można zaoszczędzić dwa bajty.
corsiKa
@corsiKa Obawiam się, że jest na odwrót. ==ma pierwszeństwo przed *=. =, +=, *=Oraz inne podobne zadania faktycznie mają najniższy priorytet w operatorów Java .
Kevin Cruijssen
Nie mogę znaleźć niczego krótszego ... Próbowałem zamienić zmienne, aby przypisać maksymalną wartość a(na przykład), bez powodzenia. Cóż, mogłem to zrobić, ale około 65 znaków ...
Olivier Grégoire
12

JavaScript (ES6), 43 41 40 bajtów

Zapisałem 1 bajt i naprawiłem błąd dzięki @Neil

Pobiera dane wejściowe jako tablicę 3 liczb całkowitych. Zwraca truedla prostopadłych i falseinnych.

a=>a.some(n=>Math.hypot(...a,...a)==n*2)


Wersja oryginalna, 44 bajty

Pobiera dane wejściowe jako 3 liczby całkowite. Zwraca 1dla prostopadłych i 0innych.

(a,b,c)=>(a*=a)+(b*=b)==(c*=c)|a+c==b|b+c==a

Przypadki testowe

Arnauld
źródło
Wygląda na to, że wpadł na dokładnie tej samej odpowiedzi (z wyjątkiem =>i ->różnicy między JavaScript i Java 8). ;) Tak oczywiste +1 ode mnie.
Kevin Cruijssen
>>1jest niebezpieczne, zwraca wartość true dla [1, 1, 1].
Neil
2
Jak o Math.hypot(...a,...a)==n*2?
Neil
@Neil Very nice fix :)
Arnauld
2
@Neil Powinien istnieć ~=operator dla „z grubsza równego”;)
JollyJoker
7

Trójkątny , 57 bajtów

Nie spotkałem się jeszcze z tym językiem i wydawało mi się, że warto spróbować. Trochę to zajęło ... ponieważ najpierw musiałem się tym zająć i wierzę, że można by jeszcze trochę zagrać w golfa.

,$\:$:*/%*$"`=P:pp.0"*>/>-`:S!>/U+<U"g+..>p`S:U/U"p`!g<>/

Wypróbuj online!

To rozwija się do następującego trójkąta.

          ,
         $ \
        : $ :
       * / % *
      $ " ` = P
     : p p . 0 "
    * > / > - ` :
   S ! > / U + < U
  " g + . . > p ` S
 : U / U " p ` ! g <
> /

Ścieżka jest dość skomplikowana, ale postaram się wyjaśnić, co zrobiłem. Pominę wskaźniki kierunkowe. Większość kodu to manipulacja stosami.

  • $:* Kwadrat pierwszego wejścia.
  • $:* Kwadrat drugiego wejścia.
  • S":Ug! Sprawdź, czy druga wartość jest większa niż pierwsza.
    • true p" Zamień z pierwszym.
    • false p Nie rób nic.
  • $:* Kwadrat trzeciego wejścia.
  • P":USg! Sprawdź, czy trzecia wartość jest większa od największej z poprzedniej.
    • true p+U- sumuje bieżący stos i zabiera zapisaną trzecią wartość
    • fałszywa p"U+- suma najmniejsza i zapisana trzecia i odejmij od największej
  • 0=% test równości do zera i wynik wyjściowy.
MickyT
źródło
6

Haskell ( 33 32 31 bajtów)

(\x->(sum x)/2`elem`x).map(^2)

Orginalna wersja:

(\x->2*maximum x==sum x).map(^2)

Funkcja anonimowa. Pobiera listę w postaci [a, b, c]. Wyprowadza wartość True lub False.

Pierwsza wersja sprawdzała, czy suma kwadratów była dwukrotnością kwadratu maksimum.

Po drugie, nieco lepsza wersja sprawdza, czy połowa sumy kwadratów jest elementem na liście kwadratów.

Edycja: przypadkowo policzyłem nowy wiersz, dzięki H.PWiz

Maślanki
źródło
1
Witamy na stronie! Ta odpowiedź ma tylko 32 bajty, może policzyłeś dodatkowy znak nowej linii?
H.PWiz
3
Możesz użyć funkcji Monada, aby zapisać więcej bajtów tutaj
H.PWiz
również nawiasy wokół summożna wyrzucić. fajne rozwiązanie!
dumny haskeller
6

Perl 6 , 24 bajtów

{(*²+*²==*²)(|.sort)}

Wypróbuj online!

*²+*²==*²jest anonimową funkcją, która zwraca true, jeśli suma kwadratów pierwszych dwóch argumentów jest równa kwadratowi trzeciego argumentu. Do tej funkcji przekazujemy posortowaną listę danych wejściowych, spłaszczając ją do listy argumentów za pomocą |.

Sean
źródło
6

R , 31 26 30 bajtów

cat(sum(a<-scan()^2)/max(a)==2)

Nie podoba mi się ten, ale jest krótszy. Sumuje kwadraty i dzieli przez największy kwadrat. Prawda, jeśli 2.

Poprzednia wersja (zmodyfikowana za pomocą kota i końcówki @ Guiseppe)

cat(!sort(scan())^2%*%c(1,1,-1))

Wykonaj sumę posortowanego wejścia z zanegowanym ostatnim elementem i zwróć !nie.

Wypróbuj online!

MickyT
źródło
W poprzedniej wersji !sort(scan())^2%*%c(1,1,-1)jest 27 bajtów. ale myślę, że nadal potrzebujesz cat.
Giuseppe,
Pozdrawiam @Guiseppe, zapomniałem o kocie. Denerwują mnie zasady dotyczące REPL, ale takie są.
MickyT
@Giuseppe Również fajny zwrot z mnożenia macierzy. Nigdy bym tego nie wymyślił.
MickyT
6

Brain-Flak , 68 bajtów

({({({})({}[()])}{}<>)<>})<>({<(({}){}<>[({})])>(){[()](<{}>)}{}<>})

Wypróbuj online!

Wykorzystuje obserwację w odpowiedzi user202729.

 {                      }      for each input number
   {({})({}[()])}{}            compute the square
  (                <>)<>       push onto second stack
(                        )     push sum of squares onto first stack
                          <>   move to second stack

 {                                    }    for each square
   (({}){}<>[({})])                        compute 2 * this square - sum of squares
  <                >(){[()](<{}>)}{}<>     evaluate loop iteration as 1 iff equal
(                                      )   push 1 if any squares matched, 0 otherwise
Nitrodon
źródło
5

C (gcc) , 49 bajtów

n(a,b,c){return(a*=a)+(b*=b)-(c*=c)&a+c-b&b+c-a;}

Wypróbuj online!

Poprawiono technikę Kevina Cruijssensa

Zwraca 0 dla poprawnego trójkąta, w przeciwnym razie wartość niezerową

Popeko
źródło
3
Witamy w PPCG!
caird coinheringaahing 24.10.17
Czy to zawsze działa, jeśli używasz operacji bitowych?
l4m2
4

MATL , 7 bajtów

SU&0)s=

Wypróbuj online!

Wyjaśnienie

Rozważ wejście [12, 37, 35].

S     % Implicit input. Sort
      % [12, 35, 37]
U     % Square each entry
      % [144, 1225, 1369]
&0)   % Push last entry and remaining entries
      % STACK: 1369, [144, 1225]
s     % Sum of array
      % STACK: 1369, 1369
=     % Isequal? Implicit display
      % STACK: 1
Luis Mendo
źródło
4

Python 2 , 43 bajty

lambda a,b,c:(a*a+b*b+c*c)/2in(a*a,b*b,c*c)

Wypróbuj online!

Python 2 , 79 70 68 62 bajtów

lambda*l:any(A*A+B*B==C*C for A,B,C in zip(l,l[1:]+l,l[2:]+l))

Wypróbuj online!

TFeld
źródło
Wyzwanie zostało zaktualizowane, aby ograniczyć dane wejściowe do liczb całkowitych.
Martin Ender
14
A*Ajest krótszy ...
Socratic Phoenix
68 bajtów tio.run/…
mdahmoune
@mdahmoune 67 bajtów ; przerzucanie znaczeń wartości prawdy i używanie -zamiast ==.
Jonathan Frech
4

C,  68  54 bajtów

Korzystanie z rozwiązania user202729 .

f(a,b,c){return!((a*=a)+(b*=b)-(c*=c)&&a-b+c&&a-b-c);}

Dzięki @Christoph za grę w golfa 14 bajtów!

Wypróbuj online!

C, 85 bajtów

#define C(a,b,c)if(a*a+b*b==c*c)return 1;
f(a,b,c){C(a,b,c)C(b,c,a)C(c,a,b)return 0;}

Wypróbuj online!

Steadybox
źródło
Dane wyjściowe 1dla parametrów, 1, 1, 1które są niepoprawne ...
Neil
@ Neil Jest już naprawiony.
Steadybox
Pytanie zostało zaktualizowane, aby używać ints, może zaoszczędzić niektóre bajty.
corsiKa
f(a,b,c){a=!((a*=a)+(b*=b)-(c*=c)&&a-b+c&&a-b-c);}
Christoph
4

Japt , 8 bajtów

Pobiera dane wejściowe jako tablicę.

m²
ø½*Ux

Spróbuj

Kudłaty
źródło
1
Lubię kwadratowe symbole w twoim rozwiązaniu;)
mdahmoune
4

J, 10 bajtów

-6 bajtów dzięki FrownyFrog

=`+/@\:~*:

oryginalna odpowiedź

(+/@}:={:)@/:~*:

/:posortuj kwadraty *:, a następnie sprawdź, czy suma pierwszych dwóch +/@}:równa się ostatniej{:

Wypróbuj online!

Jonasz
źródło
to cholernie sprytne
Jonah
4

Trójkątność ,  49  31 bajtów

...)...
..IEO..
.M)2s^.
}Re+=..

Wypróbuj online!

Wyjaśnienie

Każdy program Trójkątności musi mieć trójkątne wypełnienie (przepraszam za kalambur). Oznacza to, że i- ta linia licząca od dołu programu musi być uzupełniona i-1 kropkami ( .) z każdej strony. Aby trójkąty kropkowe były symetryczne i estetyczne, każda linia musi składać się z 2L - 1 znaków, gdzie L jest liczbą linii w programie. Usuwając znaki, które składają się na niezbędne wypełnienie, oto jak działa kod:

)IEOM)2s^}Re+=     Full program. Input: STDIN, Output: STDOUT, either 1 or 0.
)                  Pushes a zero onto the stack.
 IE                Evaluates the input at that index.
   O               Sorts the ToS (Top of the Stack).
    M)2s^}         Runs the block )2s^ on a separate stack, thus squaring each.
          R        Reverse.
           e       Dump the contents separately onto the stack.
            +      Add the top two items.
             =     Check if their sum is equal to the other entry on the stack (c^2).

Sprawdzanie, czy trójkąt jest ustawiony pod kątem prostym w trójkątności ...

Pan Xcoder
źródło
3

PowerShell , 39 bajtów

$a,$b,$c=$args|sort;$a*$a+$b*$b-eq$c*$c

Wypróbuj online!

Sortuje dane wejściowe i zapisuje je w $a,$b,$czmiennych. Następnie używa twierdzenia Pitagorasa, aby sprawdzić, czy a*a + b*b = c*c. Dane wyjściowe to Boolean Truelub False.

AdmBorkBork
źródło
3

JavaScript 34 bajty (bez D =)

D=(d,[a,b,c]=d.sort())=>a*a+b*b==c*c

console.log(D([5, 3, 4       ])== true)
console.log(D([3, 5, 4       ])== true)
console.log(D([12, 37, 35    ])== true)
console.log(D([21, 38, 5     ])== false)
console.log(D([210, 308, 15  ])== false)

DanielIndie
źródło
Miałem podobną odpowiedź w wieku 34 lat: a=>a.sort()[0]**2+a[1]**2==a[2]**2w ES6. Więc podoba Ci się @DanielIndie
WallyWest
1
Niestety sort()używa kolejności leksykograficznej, gdy nie jest dostępne wywołanie zwrotne, co powoduje na przykład, że ten kod zawodzi [10,6,8].
Arnauld,
3

RProgN 2 , 10 bajtów

§²2^r]‘\+e

Wyjaśniono

§²2^r]‘\+e
§           # Sort the input list
 ²2^r       # Square each element in the list.
     ]      # Duplicate it on the reg stack.
      ‘     # Pop the top (largest) element off it
       \+   # Swap it, sum the rest of the list.
         e  # Are they equal?

Wypróbuj online!

ATaco
źródło
Po co powielać listę?
mdahmoune
@mdahmoune RProgN2 nie zachowuje oryginalnej listy na stosie, gdy usuwa się z niej element, ale stosy są przez odniesienie, więc aby zachować stos jako sumę, najpierw trzeba go zduplikować.
ATaco
Dziękuję za głos;)
mdahmoune
3

Rakieta , 64 60 bajtów

(λ(a b c)(=(+(* a a)(* b b)(* c c))(*(expt(max a b c)2)2)))

Wypróbuj online!

Jak to działa

Testy jeśli a^2 + b^2 + c^2jest równa dwukrotności największa a^2, b^2i c^2.

Zwraca #tdla prostokątnych trójkątów i #fdla wszystkich innych danych wejściowych.


  • -4 bajty dzięki sugestii @ xnor expt.
Misza Ławrow
źródło
Niesamowite;) ale myślę, że (define funmusi być częścią kodu ...
mdahmoune
Dziękuję Ci! Myślę, że konwencjonalne jest twierdzenie, że czyste funkcje są dozwolone jako odpowiedzi. (define fun ...)Na TIO jest tylko dla wygody: moglibyśmy równie dobrze użyć tej funkcji jako (... 3 4 5)gdzie ...jest funkcja. (Więc możemy mieć nagłówek (print (i stopkę, 3 4 5))jeśli wolisz.)
Misza Ławrow
(Ale to jedno z moich pierwszych zgłoszeń dotyczących rakiet, więc nie jestem zbyt jasny, jakie są konwencje specyficzne dla rakiet, jeśli takie istnieją. Niektóre wcześniejsze rozwiązania wykorzystujące rakietę zostały włączone #lang racketdo kodu; niektóre nie.)
Misha Lavrov
1
Rakieta jest tak niewygodna, że ​​powtarzanie jest krótsze (max a b c)niż letwiązanie, co? Nie sądzę, że krótsze byłoby wiązanie jako argument do λ? A może nie ma wbudowanego potęgowania?
xnor
2
@MishaLavrov Więc co powiesz na (*(expt(max a b c)2)2)?
xnor
3

05AB1E , 6 bajtów

n{R`+Q

Wypróbuj online!

Okx
źródło
Pierwszy przykład nie wykrywa [1,1,1] nie jest prawidłowym wejściem (częsty problem przy niektórych innych próbach), ale drugi działa dobrze.
Nick Loughlin
@NickLoughlin Ups, usunięto pierwszy przykład
Okx
Możesz zrobić, n{RÆ_aby zapisać bajt.
Emigna
3

Ruby, 31 bajtów

->a{a,b,c=*a.sort;a*a+b*b==c*c}

Pobiera dane wejściowe jako listę 3 liczb całkowitych. Wykorzystuje pomysły z innych rozwiązań.

dkudriavtsev
źródło
Właśnie zdałem sobie sprawę, że odpowiedź, którą właśnie opublikowałem, jest prawie identyczna z twoją. Obiecuję, że nie skopiowałem twojego (faktycznie miałem go przez pewien czas w polu „Opublikuj odpowiedź”), ale ponieważ twoje zostało przesłane jako pierwsze, jeśli uważasz, że moje jest zbyt blisko, usunę je.
iamnotmaynard
@iamnotmaynard To właściwie to samo. to był zabawny zbieg okoliczności lol. Dzięki za poinformowanie mnie
dkudriavtsev
Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
mdahmoune
3

Julia 0.6 , 16 bajtów

!x=xx2x.*x

Wypróbuj online!

Jak to działa

Niech x = [a, b, c] .

x⋅xjest iloczynem iloczynu x i samego, więc daje a² + b² + c² .

2x.*xjest iloczynem elementarnym 2x i x , więc daje [2a², 2b², 2c²] .

Na koniec sprawdza, czy liczba całkowita a² + b² + c² należy do wektora [2a², 2b², 2c²] , co jest prawdziwe iff
a² + b² + c² = 2a² lub a² + b² + c² = 2b² lub a² + b² + c² = 2c² , co samo w sobie jest prawdziwe iff
b² + c² = a² lub a² + c² = b² lub a² + b² = c² .

Dennis
źródło
3

Java (OpenJDK 8) , 68 bajtów

a->{java.util.Arrays.sort(a);return a[0]*a[0]+a[1]*a[1]==a[2]*a[2];}

Wypróbuj online!

Roberto Graham
źródło
Czy możesz zapisać niektóre bajty, używając curry zamiast tablicy?
AdmBorkBork
1
@AdmBorkBork Nie, ponieważ sortzajmuje tablicę.
Olivier Grégoire
3

TI-Basic, 13 11 10 bajtów

max(Ans=R►Pr(min(Ans),median(Ans

Teraz działa na dane wejściowe w dowolnej kolejności i jest również krótszy. Kolejne -1 dzięki @MishaLavrov

Timtech
źródło
Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
mdahmoune
To tylko wykrywa klasyfikowane odpowiednie trójkąty: wejście A=5, B=4, C=3by nie być prawidłowo obsługiwane.
Misha Lavrov
@MishaLavrov Dzięki za zwrócenie na to uwagi, tak naprawdę jest krótsza obsługa listy. Teraz działa dla danych wejściowych w dowolnej kolejności.
Timtech,
Jeśli pominiemy pojedynczy ), to max(Ans=R►Pr(min(Ans),median(Ansjest również poprawny (chociaż obliczenia, które tu wykonujemy, są inne) i są o jeden bajt krótsze.
Misha Lavrov
@MishaLavrov To ciekawe, rozumiem, co masz na myśli. Myślę, że wyrażenia są równoważne dla wszystkich nieujemnych danych wejściowych.
Timtech
3

CJam, 9

q~$W%~mh=

Wypróbuj online

Wyjaśnienie:

q~      read and evaluate the input (given as an array)
$W%     sort and reverse the array
~       dump the array on the stack
mh      get the hypotenuse of a right triangle with the given 2 short sides
=       compare with the longer side
aditsu
źródło
Jakieś wyjaśnienia;)?
mdahmoune
@mdahmoune here you go
aditsu
Cholera. Nie napisałeś tego języka? To nie wydaje się sprawiedliwe. (żart)
kaine
3

Pari / GP , 29 24 bajtów

f(v)=v~==2*vecmax(v)^2

Wypróbuj online!

Oszczędność pięciu bajtów dzięki oczywistej zmianie z norml2(v)na v*v~.

Inspirowany innymi odpowiedziami.

Tutaj vmoże być wektorem rząd lub wektora kolumny trzech współrzędnych.

Przykład zastosowania: f([3,4,5])

Oczywiście, na przykład, otrzymujesz racjonalne długości boków f([29/6, 10/3, 7/2]).

Jeśli nie liczę f(v)=części, to jest 19 bajtów. Pierwszą część można również napisać v->(łącznie 22 bajty).

Objaśnienie: Jeżeli trzy współrzędne vx, yi z, następnie produktem vi jego transpozycji v~daje skalarne x^2+y^2+^z^2i musimy sprawdzić, czy to jest równa dwukrotności kwadratu maksimum współrzędnych x, y, z.

Dodatkowo: Te same ftesty dla poczwórnej Pitagorasa, jeśli wektor wejściowy ma cztery współrzędne i tak dalej.

Jeppe Stig Nielsen
źródło
Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
mdahmoune
@mdahmoune Możesz użyć tego tio.runlinku . Jednak dużo przyjemniej jest po prostu zainstalować PARI / GP lokalnie.
Jeppe Stig Nielsen
3

MS Excel, 49 bajtów

Anonimowa funkcja arkusza roboczego, która pobiera dane z zakresu [A1: C1] i wysyła je do komórki wywołującej.

=OR(A1^2+B1^2=C1^2,B1^2+C1^2=A1^2,A1^2+C1^2=B1^2)
Taylor Scott
źródło