[Question]
  [
Let \$n=42\$ (Input)
Then divisors are : 1, 2, 3, 6, 7, 14, 21, 42
Squaring each divisor : 1, 4, 9, 36, 49, 196, 441, 1764
Taking sum (adding) : 2500
Since \$50\times 50=2500\$ therefore we return a truthy value. If it is not a perfect square, return a falsy value.
# Examples :
```
42  ---> true
1   ---> true
246 ---> true
10  ---> false
16  ---> false
```
This is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'") so shortest code in bytes for each language wins 
Thanks to @Arnauld for pointing out the sequence : [A046655](https://oeis.org/A046655)
  
[Answer]
# [R](https://www.r-project.org/), ~~39~~ 37 bytes
```
!sum((y=1:(x=scan()))[!x%%y]^2)^.5%%1
```
[Try it online!](https://tio.run/##K/r/X7G4NFdDo9LW0EqjwrY4OTFPQ1NTM1qxQlW1MjbOSDNOz1RV1fC/kYnZfwA "R ‚Äì Try It Online")
Uses the classic "test if perfect square" approach, taking the non-integral part of the square root `S^.5%%1` and taking the logical negation of it, as it maps zero (perfect square) to `TRUE` and nonzero to `FALSE`.
Thanks to [Robert S](https://codegolf.stackexchange.com/users/81727/robert-s) for saving a couple of bytes!
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), 5 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)
```
√ënO√Ö¬≤
```
**[Try it online!](https://tio.run/##yy9OTMpM/f//8MQ8/8Othzb9/29iBAA "05AB1E ‚Äì Try It Online")**
### How?
```
√ënO√Ö¬≤
√ë     - divisors
 n    - square
  O   - sum
   √Ö¬≤ - is square?
```
[Answer]
# [Shakespeare Programming Language](https://github.com/TryItOnline/spl), ~~434~~ ~~428~~ 415 bytes
```
,.Ajax,.Ford,.Puck,.Act I:.Scene I:.[Enter Ajax and Ford]Ford:Listen tothy.Scene V:.Ajax:You be the sum ofyou a cat.Ford:Is the remainder of the quotient betweenyou I worse a cat?[Exit Ajax][Enter Puck]Ford:If soyou be the sum ofyou the square ofI.[Exit Puck][Enter Ajax]Ford:Be you nicer I?If solet usScene V.[Exit Ford][Enter Puck]Puck:Is the square ofthe square root ofI worse I?You zero.If notyou cat.Open heart
```
[Try it online!](https://tio.run/##bVDNasMwDH4VPUDwoezkS9igA8Ngg8JglB68RCHeWqu1Zdr05TPL8UYOuwjrs74fKZ6P89yoxy97a9Qzhb5Rb6n7zkjHYLTadehRHvutZwwgg2B9DzJ7kKJfXGT0wMTjVOffdVHUH5TgE4FHhJhOQMOUAQud5eKlTSx/AU/W@T7L01CASyJ26DmT@YrohWbgSiHiQm/325vjkuZQk0nsJZAZINL0n3XpLskGzIBRi0ghrtZbRJ4QhOFdl2HTFs0jMqRYV6zscod1BCm/i/15rZpAxOJe1zGtHOmOgVT28MTiKgd6PeejjmgDz/PD5gc)
*-13 bytes thanks to Jo King!*
Outputs `1` for true result, outputs `0` for false result.
[Answer]
# JavaScript (ES7), ~~¬†46 44¬†~~ 42 bytes
*Saved 1 byte thanks to @Hedi*
```
n=>!((g=d=>d&&d*d*!(n%d)+g(d-1))(n)**.5%1)
```
[Try it online!](https://tio.run/##dczRCoIwGIbh865iHSj/P3M2Mc8mdB0RMdwm5tpkWtDVL4NOJPxOH773Ll9yakM/zrnzSkcjohPNHqATSjQqTRVVdA8uUZh1oHKOCA4pZaeEY2y9m7zVzPoODFQlIiFFQebw1Lu18S9tWFnVi278jr@mkXb6w3qFK70wxs4hyPeSWIZX9pAjwO1ABiSiIQPJCEdmejvrAAYxfgA "JavaScript (Node.js) ‚Äì Try It Online")
## Commented
```
n =>             // n = input
  !(             // we will eventually convert the result to a Boolean
    (g = d =>    // g is a recursive function taking the current divisor d
      d &&       //   if d is equal to 0, stop recursion 
      d * d      //   otherwise, compute d¬≤
      * !(n % d) //   add it to the result if d is a divisor of n
      + g(d - 1) //   add the result of a recursive call with the next divisor
    )(n)         // initial call to g with d = n
    ** .5 % 1    // test whether the output of g is a perfect square
  )              // return true if it is or false otherwise
```
[Answer]
# [Python 2](https://docs.python.org/2/), 55 bytes
```
lambda n:sum(i*i*(n%i<1)for i in range(1,n+1))**.5%1==0
```
[Try it online!](https://tio.run/##FckxDsIwDAXQGU7hpVKSWqiOSoeKnAQYgiBgif5WoQyc3qhvfctvfc2IVtLF3nm63TNh/Hwnp0GDQ6Mn8WWupKSgmvF8OGG04n0Ih2MjKXW2PbY/95GFYz@wdCzDddzvlqpYqTh4sz8 "Python 2 ‚Äì Try It Online")
[Answer]
# [Neim](https://github.com/okx-code/Neim), 5 bytes
```
ùêÖ·õ¶ùê¨qùïö
```
Explanation:
```
ùêÖ      Factors
 ·õ¶      Squared
  ùê¨     Summed
    ùïö   is in?
   q    infinite list of square numbers
```
[Try it online!](https://tio.run/##y0vNzP3//8PcCa0PZy8DUmsKP8ydOuv/f0MzAA "Neim ‚Äì Try It Online")
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~67~~ ~~63~~ ~~60~~ 59 bytes
*-1 bytes* thanks to @JonathanFrech
```
i,s;f(n){for(s=i=0;i++<n;)s+=n%i?0:i*i;n=sqrt(s);n=n*n==s;}
```
[Try it online!](https://tio.run/##dctBCsIwEIXhfU8hhcJM00CMxYUxeBE3JZIy0I6a6a706sbi2rzVg48/6DGEnKkTF4Fxjc8E4skbR0pd2aEozw3dzIVacuzlnRYQ3B@37L24Lc8DMWC1Vod9r0S8RKibx53rLkJvEd1fOZbA9udiY4rya7b8CXEaRsl6Ptmsp/kL "C (gcc) ‚Äì Try It Online")
[Answer]
# [Brachylog](https://github.com/JCumin/Brachylog), ~~12~~ 8 bytes
```
f^‚ÇÇ·µê+~^‚ÇÇ
```
-4 bytes thanks to Fatelize cause i didn't realize brachylog has a factors functions
# explanation
```
f^‚ÇÇ·µê+~^‚ÇÇ            #   full code
f                   #       get divisors
 ^‚ÇÇ·µê                #           square each one
    +               #       added together
      ~^‚ÇÇ           #       is the result of squaring a number
```
[Try it online!](https://tio.run/##SypKTM6ozMlPN/pfXa6koKtrp6BUrvaobcOjpqZHHcuVSopKU5Ue7uqsAXHSEnOKwbzah1sn/E@LA6oBMrTrQIz//6NNjHQUDHUUjEzMgLQBEJvFAgA "Brachylog ‚Äì Try It Online")
[Answer]
# [MathGolf](https://github.com/maxbergmark/mathgolf), ~~5~~ 4 bytes
```
‚îÄ¬≤Œ£¬∞
```
[Try it online!](https://tio.run/##y00syUjPz0n7///RlIZDm84tPrTh/38TIwA "MathGolf ‚Äì Try It Online")
## Explanation
```
‚îÄ     Get all divisors as list (implicit input)
 ¬≤    Square (implicit map)
  Œ£   Sum
   ¬∞  Is perfect square?
```
Very similar to other answers, compared to 05AB1E I gain one byte for my "is perfect square" operator.
[Answer]
# [MATL](https://github.com/lmendo/MATL), 9 bytes
```
Z\UsX^tk=
```
[Try it online!](https://tio.run/##y00syfmf8D8qJrQ4Iq4k2/a/S1RFSOx/EyMuQy4jEzMuQwMuQzMA "MATL ‚Äì Try It Online")
As simple as it gets
```
Z\ % Divisors of (implicit) input
U  % Square
s  % Sum
X^ % Square root
t  % Duplicate this value
k= % Is it equal to its rounded value?
```
[Answer]
# [Thunno 2](https://github.com/Thunno/Thunno2), 5 [bytes](https://github.com/Thunno/Thunno2/blob/main/docs/codepage.md)
```
F¬≤S√Ü¬≤
```
[Try it online!](https://Not-Thonnu.github.io/run#aGVhZGVyPSZjb2RlPUYlQzIlQjJTJUMzJTg2JUMyJUIyJmZvb3Rlcj0maW5wdXQ9NDIlMjAlMjAtJTNFJTIwVHJ1ZSUwQTElMjAlMjAlMjAtJTNFJTIwVHJ1ZSUwQTI0NiUyMC0lM0UlMjBUcnVlJTBBMTAlMjAlMjAtJTNFJTIwRmFsc2UlMEExNiUyMCUyMC0lM0UlMjBGYWxzZSZmbGFncz1DZQ==)
#### Explanation
```
F¬≤S√Ü¬≤  # Implicit input
F      # Factors
 ¬≤     # Square
  S    # Sum
   √Ü¬≤  # Perfect square
       # Implicit output
```
[Answer]
# [PowerShell](https://github.com/TryItOnline/TioSetup/wiki/Powershell), ~~68~~ 56 bytes
```
param($n)1..$n|%{$a+=$_*$_*!($n%$_)};1..$a|?{$_*$_-eq$a}
```
[Try it online!](https://tio.run/##K8gvTy0qzkjNyfn/vyCxKDFXQyVP01BPTyWvRrVaJVHbViVeC4gUgcKqKvGatdYgucQa@2qwuG5qoUpi7f///02MAA "PowerShell ‚Äì Try It Online")
~~Seems long ...~~  
*-12 bytes thanks to mazzy*
Does exactly what it says on the tin. Takes the range from `1` to input `$n` and multiplies out the square `$_*$_` times whether it's a divisor or not `!($n%$_)`. This makes divisors equal to a nonzero number and non-divisors equal to zero. We then take the sum of them with our accumulator `$a`. Next, we loop again from `1` up to `$a` and pull out those numbers where `|?{...}` it squared is `-eq`ual to `$a`. That is left on the pipeline and output is implicit.
Outputs a positive integer for truthy, and nothing for falsey.
[Answer]
# [Japt](https://github.com/ETHproductions/japt), ~~11~~ ~~9~~ 7 bytes
*-2 bytes from @Giuseppe and another -2 from @Shaggy*
```
√¢ x¬≤¬¨v1
```
---
```
√¢ x¬≤¬¨v1             Full program. Implicity input U
√¢                   get all integer divisors of U
  x¬≤                square each element and sum
    ¬¨               square root result
     v1           return true if divisible by 1
```
[Try it online!](https://tio.run/##y0osKPn///AihYpDmw6tKTP8/9/ECAA "Japt ‚Äì Try It Online")
[Answer]
# [APL (Dyalog Unicode)](https://www.dyalog.com/), 18 bytes
```
0=1|.5*‚ç®2+.*‚ç®‚àò‚à™‚ç≥‚à®‚ä¢
```
[Try it online!](https://tio.run/##SyzI0U2pTMzJT///38DWsEbPVOtR7wojbT0Q9ahjxqOOVY96Nz/qWPGoa9H/tEdtEx719j3qm@rp/6ir@dB640dtE4G84CBnIBni4Rn8/1HvqupHvVttDa3UQ4pKU9UfdbeouyXmFKeq1x5akXZohYmRgqGCkYmZgqGBgqEZAA "APL (Dyalog Unicode) ‚Äì Try It Online")
Anonymous lambda. Returns 1 for truthy and 0 for falsy (test cases in TIO are prettified).
Shoutouts to @H.PWiz for 4 bytes!
### How:
```
0=1|.5*‚ç®2+.*‚ç®‚àò‚à™‚ç≥‚à®‚ä¢   ‚çù Main function, argument ‚çµ ‚Üí 42
                ‚à®‚ä¢   ‚çù Greatest common divisor (‚à®) between ‚çµ (‚ä¢)
               ‚ç≥      ‚çù and the range (‚ç≥) [1..‚çµ]
              ‚à™      ‚çù Get the unique items (all the divisors of 42; 1 2 3 6 7 14 21 42)
             ‚àò        ‚çù Then
            ‚ç®         ‚çù Swap arguments of
        2+.*          ‚çù dot product (.) of sum (+) and power (*) between the list and 2 
                      ‚çù (sums the result of each element in the vector squared)
       ‚ç®              ‚çù Use the result vector as base
    .5*               ‚çù Take the square root
  1|                  ‚çù Modulo 1
0=                    ‚çù Equals 0
```
[Answer]
# [K (oK)](https://github.com/JohnEarnest/ok), ~~26~~ ~~25~~ 22 bytes
**Solution:**
```
{~1!%+/x*x*~1!x%:1+!x}
```
[Try it online!](https://tio.run/##y9bNz/7/v7rOUFFVW79Cq0LLqsI2vkLVylBbsaLWQd3ESMFQwcjETMHQQMHQ7P9/AA "K (oK) ‚Äì Try It Online")
**Explanation:**
```
{~1!%+/x*x*~1!x%:1+!x} / the solution
{                    } / lambda taking x as input
                   !x  / range 0..x-1                        \
                 1+    / add 1                               |
              x%:      / x divided by and save result into x |
            1!         / modulo 1                            | get divisors
           ~           / not                                 |
         x*            / multiply by x                       /
       x*              / multiply by x (aka square)          > square
     +/                / sum up                              > sum up
    %                  / square root                         \  
  1!                   / modulo 1                            | check if a square
 ~                     / not                                 / 
```
**Notes:**
* -1 bytes taking inspiration from the [PowerShell](https://codegolf.stackexchange.com/a/171955/69200) solution
* -3 bytes taking inspiration from the [APL](https://codegolf.stackexchange.com/a/171960/69200) solution
[Answer]
# [Pari/GP](http://pari.math.u-bordeaux.fr/), 23 bytes
```
n->issquare(sigma(n,2))
```
[Try it online!](https://tio.run/##FYdBCoAgEAC/snjaBYUS8ZYfiQ4eUoRaNq1Drzc7DDMjsRaTpSdYoLMJpbXriXXHVvIZkbUl6lHkeJHBBJBa@B6p/lGQkIk0rM5qmDVY54engd@ofw "Pari/GP ‚Äì Try It Online")
[Answer]
## Matlab, 39 37 bytes
```
@(v)~mod(sqrt(sum(divisors(v).^2)),1)
```
Unfortunately, it doesn't work on Octave (on tio) so no tio link.
**Note** As @LuisMendo stated, `divisors()` belongs to Symbolic Toolbox.
[Answer]
# [Haskell](https://www.haskell.org/), ~~78~~ ~~64~~ 53 bytes
*-14 bytes thanks to [√òrjan Johansen](/u/66041). -11 bytes thanks to [ovs](/u/64121).*
```
f x=sum[i^2|i<-[1..x],x`mod`i<1]`elem`map(^2)[1..x^2]
```
[Try it online!](https://tio.run/##y0gszk7Nyfn/P02hwra4NDc6M86oJtNGN9pQT68iVqciITc/JSHTxjA2ITUnNTchN7FAI85IEywbZxT7PzcxM0/BVgEo7BuvoFFQlJlXopemqRBtYqRjqGNkYqZjaKBjaBb7HwA "Haskell ‚Äì Try It Online")
Hey, it's been a while since I've... written *any* code, so my Haskell and golfing might a bit rusty. I forgot the troublesome Haskell numeric types. :P
[Answer]
# [Pyt](https://github.com/mudkip201/pyt), 7 bytes
```
√∞¬≤∆©ƒê≈ô¬≤‚àà
```
[Try it online!](https://tio.run/##ARgA5/9weXT//8OwwrLGqcSQxZnCsuKIiP//NDI "Pyt ‚Äì Try It Online")
### Explanation
```
            Implicit input
√∞           Get list of divisors
 ¬≤          Square each element
  ∆©         Sum the list [n]
   ƒê        Duplicate the top of the stack
    ≈ô¬≤      Push the first n square numbers
      ‚àà     Is n in the list of square numbers?
            Implicit output
```
---
```
√∞¬≤∆©‚àöƒê∆ñ=
```
[Try it online!](https://tio.run/##ARcA6P9weXT//8OwwrLGqeKImsSQxpY9//80MQ "Pyt ‚Äì Try It Online")
### Explanation
```
            Implicit input
√∞           Get list of divisors
 ¬≤          Square each element
  ∆©         Sum the list [n]
   ‚àö        Take the square root of n
    ƒê       Duplicate the top of the stack
     ∆ñ      Cast to an integer
      =     Are the top two elements on the stack equal to each other?
            Implicit output
```
---
[Answer]
# [Taxi](https://bigzaphod.github.io/Taxi/), ~~4430~~ 4305 bytes
```
Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Cyclone.0 is waiting at Starchild Numerology.0 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.Pickup a passenger going to Rob's Rest.Pickup a passenger going to Addition Alley.Go to Rob's Rest:w 1 r 2 l 1 r.Go to Cyclone:s 1 l 1 l 2 l.[B]Pickup a passenger going to Divide and Conquer.1 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 r 3 l.Pickup a passenger going to Addition Alley.Go to Addition Alley:w 1 r 3 r 1 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l 1 l.Pickup a passenger going to Sunny Skies Park.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:n 2 r 2 r 1 r.Pickup a passenger going to Cyclone.Go to Sunny Skies Park:e 1 l 1 l 2 l 1 l.Go to Zoom Zoom:n 1 r.Go to Cyclone:w.Pickup a passenger going to Sunny Skies Park.Pickup a passenger going to Equal's Corner.Pickup a passenger going to Trunkers.Go to Sunny Skies Park:n 1 r.Go to Trunkers:s 1 l.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan C if no one is waiting.Pickup a passenger going to Riverview Bridge.Go to Sunny Skies Park:n.Pickup a passenger going to Sunny Skies Park.Pickup a passenger going to Cyclone.Go to Riverview Bridge:n 1 r 1 r.Go to Cyclone:w 2 l.Pickup a passenger going to Cyclone.Go to Sunny Skies Park:n 1 r.Go to Cyclone:n 1 l.Pickup a passenger going to Multiplication Station.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:s 1 l 2 r 4 l.Pickup a passenger going to Addition Alley.Go to Rob's Rest:s 1 r 2 l 1 l 1 r 1 r.Pickup a passenger going to Addition Alley.Go to Addition Alley:s 1 l 1 l 2 r 1 r 1 r.Pickup a passenger going to Rob's Rest.Go to Rob's Rest:n 1 l 1 l 1 l 2 r 1 r.Go to Cyclone:s 1 l 1 l 2 l.Pickup a passenger going to Magic Eight.Go to Sunny Skies Park:n 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n 1 l.Pickup a passenger going to Cyclone.Pickup a passenger going to Magic Eight.Go to Magic Eight:s 1 l 2 r.Switch to plan D if no one is waiting.Pickup a passenger going to Addition Alley.Go to Cyclone:n 1 l 2 r.Switch to plan B.[C]Go to Sunny Skies Park:n.Pickup a passenger going to Cyclone.Pickup a passenger going to Addition Alley.Go to Cyclone:n 1 l.Switch to plan B.[D]Go to Cyclone:n 1 l 2 r.Pickup a passenger going to Sunny Skies Park.Pickup a passenger going to Sunny Skies Park.Go to Sunny Skies Park:n 1 r.Go to Rob's Rest:s 2 r 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:s 1 l 1 l 2 l.Pickup a passenger going to Cyclone.Pickup a passenger going to Cyclone.Go to Zoom Zoom:n.Go to Cyclone:w.[E]Pickup a passenger going to Joyless Park.Pickup a passenger going to Divide and Conquer.Go to Joyless Park:n 2 r 2 r 2 l.Go to Cyclone:w 1 r 2 l 2 l.Pickup a passenger going to Cyclone.Pickup a passenger going to Joyless Park.Go to Joyless Park:n 2 r 2 r 2 l.Go to Cyclone:w 1 r 2 l 2 l.Pickup a passenger going to Divide and Conquer.Pickup a passenger going to Divide and Conquer.Go to Divide and Conquer:n 2 r 2 r 1 r.Pickup a passenger going to Magic Eight.1 is waiting at Starchild Numerology.Go to Starchild Numerology:e 1 r 3 r 1 l 1 l 2 l.Pickup a passenger going to Magic Eight.Go to Magic Eight:w 1 r 2 r 1 r.Switch to plan F if no one is waiting.Pickup a passenger going to Riverview Bridge.Go to Joyless Park:e 2 l 4 r.Pickup a passenger going to Cyclone.Pickup a passenger going to The Underground.Go to The Underground:w 1 l.Pickup a passenger going to Cyclone.Go to Fueler Up:s.Go to Riverview Bridge:n 3 l.Go to Cyclone:w 2 l.Switch to plan E.[F]Go to Joyless Park:e 2 l 4 r.Pickup a passenger going to What's The Difference.Pickup a passenger going to Cyclone.Go to Cyclone:w 1 r 2 l 2 l.Pickup a passenger going to Multiplication Station.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:s 1 l 2 r 4 l.Pickup a passenger going to What's The Difference.Go to What's The Difference:n 2 l 1 r 3 l.Pickup a passenger going to Knots Landing.Go to Knots Landing:e 4 r 1 l.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:w 1 l.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.
```
[Try it online!](https://tio.run/##zVjJbtswEP2VufUmNLLRg2/xFqCrEScoUMMHRhrJhBnSISW7/npXEr1QiyVaUYseZAPc5s2bmceRIvKbHg4PAiIBM6Ei@BEE1MPBDu6AJY9M/50Z9dbxBghsiFLIQ5QQCsrDdNfTCmFIXpAFVK1Q7h19WHF4oE4n1p422ntMcHQ@AlWwIzRKx0kE84hIb0WZD9/jV5SCiXBvt0jDqZoa8CMk/bgNjj6Klw8KHlFFtcvufT8BJDjcM4Yn85e9GbMyNZZxoaePXp850mAWw2WdoTHdUh@BcB9Ggr/FKJ27DgiR0GsgotLD/ODRy16WP9I66nk2zuGp3TuPOd/DfE1RwYzItXMjZ9pmeSIx72aBuhV@EdAAzahm/uiFv4R4zX407wXvd915PXmLCUvybyQkx3pXnmTM1yjVNV9MpKe1Om1vQaD35we15DjzHY28VTq9YYTDCGgAXEDCiJHb9XVKtyi3FHcwlNQPr4aFd0dwPgGKAI5lVRHiRs1pyKyqvOGNwfgWs4huGPVIVrCJEqT/bbZoy9WTRzFL66ffRlAMyVSGZDIrQbGRKFNs7WTKuAFKGIt3iWyU91q@SUg9mNBwFdXHvqWqWu27DaAxcgl9sZzHt5dzZSjzV0SFoaGzGC1bFb6N982YKvCMl9ewd6ZDpcUWupGrM7f1ZW2f2zYE520YF2XpklxMapukz2LPUL2nMzBPMHoC93yNX9T8pFJdMJAD/teQVHj979snU0ve28Gi0Xe2lVpTyU5Uai8KRT3trDnJhRaz0PUty7Dp3eyZ@yhDKWLuG69mxuix8bIvx2mMLJl93gzU9Y6nV5GVblkXJ85iumzNwc8ViRLxSh0a0yBAidzDFuJlXzD/Xe9UTYE@vHIuK0xm9aL3hYtIwdekqtO01mfmxpIw9Tv8RNCciMYnCqf80YKfPzEcDm7/0x8 "Taxi ‚Äì Try It Online")
I went to a lot of places in Townsburg that I've never visited before for this program. Because this program is HUGE (mainly due to the fact that there isn't a one-stop way to take square roots; I still don't actually do that, though), I'm going to attempt to sketch out an explanation of this program.
```
Go to Post Office:w 1 l 1 r 1 l.
[Take an input line from STDIN.]
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:s 1 l 1 r.
[Take it to The Babelfishery, which converts the string to a double.]
[If you were to give it a double, it gives back a string.]
Pickup a passenger going to Cyclone.
[We're going to clone this number by sending it to the Cyclone.]
0 is waiting at Starchild Numerology.
[In Taxi, numeric passengers are introduced once they wait at Starchild Numerology.]
[This passenger will be our running squares total.]
0 is waiting at Starchild Numerology.
[This passenger will be our counter, going from 1 to the inputted number.]
[Yes, it's starting at 0 here, but it is incremented at the start of our loop.]
Go to Starchild Numerology:n 1 l 1 l 1 l 2 l.
Pickup a passenger going to Rob's Rest.
Pickup a passenger going to Addition Alley.
Go to Rob's Rest:w 1 r 2 l 1 r.
Go to Cyclone:s 1 l 1 l 2 l.
[Drop off the squares total at Rob's Rest. We'll pick it back up later when we need it.]
[Also, do the actual cloning of the inputted number.]
[At the start of each loop, our only passenger is the counter, going to Addition Alley.]
[B]
Pickup a passenger going to Divide and Conquer.
[Pick up one of the clones of the inputted number.]
[We will leave the other clone here for later.]
1 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 r 3 l.
Pickup a passenger going to Addition Alley.
Go to Addition Alley:w 1 r 3 r 1 r 1 r.
Pickup a passenger going to Cyclone.
[Pick up the number 1, and add it to the counter, then pick up the result.]
[This new passenger is our new counter.]
Go to Cyclone:n 1 l 1 l.
Pickup a passenger going to Sunny Skies Park.
Pickup a passenger going to Divide and Conquer.
[First we pick up the other clone of the inputted number, going to Sunny Skies Park.]
[Sunny Skies Park is basically a First-In-First-Out queue, where we will stick it for later.]
[Then we pick up a clone of the counter which we just dropped off, so we can divide the input by it.]
[We will leave the other clone here for later.]
Go to Divide and Conquer:n 2 r 2 r 1 r.
Pickup a passenger going to Cyclone.
[Divide the inputted number by the counter, and prepare to clone it.]
Go to Sunny Skies Park:e 1 l 1 l 2 l 1 l.
[Drop off our clone of the inputted number at Sunny Skies Park.]
Go to Zoom Zoom:n 1 r.
[Can't forget to get gas!]
[Zoom Zoom is a close gas station, and we have so many credits that one stop here every iteration fills us up completely.]
Go to Cyclone:w.
Pickup a passenger going to Sunny Skies Park.
Pickup a passenger going to Equal's Corner.
Pickup a passenger going to Trunkers.
[First we pick up the other clone of the counter, going to Sunny Skies Park for later.]
[Then we pick up a clone of the division result, going to Equal's Corner.]
[Equal's Corner takes multiple numeric passengers, and returns the value of one of them if they are equal, but otherwise it returns no one.]
[Finally we pick up the other clone of the division result, going to Trunkers.]
[Dropping off a passenger at Trunkers is equivalent to the floor function. We need it here because division results are "exact".]
[(Well, as exact as double precision arithmetic can be.)]
[We will compare the result of this to the exact result of the division.]
Go to Sunny Skies Park:n 1 r.
[Drop off our clone of the counter at Sunny Skies Park.]
Go to Trunkers:s 1 l.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
[Compare the exact division result with the floored division result.]
[If they are equal, then the value of one of them will be waiting.]
[This also means that the counter is a divisor of the input, and we should add the square of the counter to our running squares total.]
[If they are not equal, no one will be waiting, the counter is not a divisor of the input, and nothing should happen.]
Switch to plan C if no one is waiting.
[This is Taxi's only conditional operator.]
[It jumps to a bracketed label (in this case, C) if there is no one waiting at this stop.]
[Of course, there is an unconditional version of this, too.]
[If we are on this path, we are adding the square of the counter to our running squares total.]
Pickup a passenger going to Riverview Bridge.
[We don't actually need the passenger that's waiting here (and leaving it there will not work at all).]
[So what do you do when you have a pesky passenger you don't want? You take them to Riverview Bridge!]
[Riverview Bridge has a lovely view, but passengers dropped off there always seem to fall in the river.]
[This means you don't collect your fare for bringing them there, but at least the pesky passenger is gone.]
Go to Sunny Skies Park:n.
Pickup a passenger going to Sunny Skies Park.
Pickup a passenger going to Cyclone.
[We want to pick up the counter (so we can multiply it by itself). That dang input is in the way, but we still need it.]
[So what do we do? We just take it back to where it was waiting!]
[Yup, even though one would never do this in real life, a passenger's current location is a perfectly legal destination in Taxi.]
Go to Riverview Bridge:n 1 r 1 r.
[So long, Equal's Corner result!]
Go to Cyclone:w 2 l.
Pickup a passenger going to Cyclone.
Go to Sunny Skies Park:n 1 r.
[We clone the counter so we can still use it, then we drop the inputted number back at Sunny Side Park.]
[Again, we will leave the other clone here for later.]
Go to Cyclone:n 1 l.
Pickup a passenger going to Multiplication Station.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station:s 1 l 2 r 4 l.
[Square the counter.]
Pickup a passenger going to Addition Alley.
Go to Rob's Rest:s 1 r 2 l 1 l 1 r 1 r.
Pickup a passenger going to Addition Alley.
Go to Addition Alley:s 1 l 1 l 2 r 1 r 1 r.
Pickup a passenger going to Rob's Rest.
Go to Rob's Rest:n 1 l 1 l 1 l 2 r 1 r.
[Pick up the running squares total from Rob's Rest, add it to the square of the counter, then bring it back.]
Go to Cyclone:s 1 l 1 l 2 l.
Pickup a passenger going to Magic Eight.
[Pick up the counter, going to Magic Eight.]
[Magic Eight takes two numeric passengers, and returns the first passenger if it is less than the second, but otherwise it returns no one.]
[We will compare the counter to the inputted number...]
Go to Sunny Skies Park:n 1 r.
Pickup a passenger going to Cyclone.
Go to Cyclone:n 1 l.
Pickup a passenger going to Cyclone.
Pickup a passenger going to Magic Eight.
[...who we take now, so we can make a clone of it and compare it to the counter.]
Go to Magic Eight:s 1 l 2 r.
Switch to plan D if no one is waiting.
[Compare.]
[If the counter is waiting here, the loop is to continue.]
[If not, switch to plan D, end the loop, and start detecting whether or not the running squares total is a square itself.]
Pickup a passenger going to Addition Alley.
Go to Cyclone:n 1 l 2 r.
Switch to plan B.
[Reset everything, and loop back to the start of plan B.]
[C]
[If we are on this path, the counter is not a divisor of the inputted number, but the loop should continue anyways.]
Go to Sunny Skies Park:n.
Pickup a passenger going to Cyclone.
Pickup a passenger going to Addition Alley.
Go to Cyclone:n 1 l.
Switch to plan B.
[Reset everything, and loop back to the start of plan B.]
[D]
[We are finally out of the loop. Now it's time for the real fun.]
Go to Cyclone:n 1 l 2 r.
Pickup a passenger going to Sunny Skies Park.
Pickup a passenger going to Sunny Skies Park.
Go to Sunny Skies Park:n 1 r.
[We don't need the inputted number anymore, but we can't change its destination from the Cyclone.]
[So we go to the Cyclone, so we can take the two clones and bring them to Sunny Skies Park forever.]
[We could send them to Riverview Bridge, but that will take more bytes.]
Go to Rob's Rest:s 2 r 1 r.
[Pick up our running squares total from Rob's Rest, so it can go out and see the town.]
Pickup a passenger going to Cyclone.
Go to Cyclone:s 1 l 1 l 2 l.
Pickup a passenger going to Cyclone.
Pickup a passenger going to Cyclone.
Go to Zoom Zoom:n.
Go to Cyclone:w.
[We need to end up with 4 clones of the total.]
[Two of them will actually be used as the counter in this loop.]
[At the start of each loop, we have no passengers.]
[E]
Pickup a passenger going to Joyless Park.
Pickup a passenger going to Divide and Conquer.
Go to Joyless Park:n 2 r 2 r 2 l.
[We will leave one clone of the total at Joyless Park (like Sunny Side Park, but on the opposite side of town).]
[The other clone will be used in a division.]
Go to Cyclone:w 1 r 2 l 2 l.
Pickup a passenger going to Cyclone.
Pickup a passenger going to Joyless Park.
Go to Joyless Park:n 2 r 2 r 2 l.
[We will leave one clone of the counter at Joyless Park.]
[We will clone the other clone (clone-ception?).]
Go to Cyclone:w 1 r 2 l 2 l.
Pickup a passenger going to Divide and Conquer.
Pickup a passenger going to Divide and Conquer.
Go to Divide and Conquer:n 2 r 2 r 1 r.
[We will use both clones of the counter in a division.]
[Divide and Conquer can take 3 arguments, and the result here will be equivalent to total / counter^2 .]
[If the square of the counter is equal to the total, the result will be 1.]
[If the square of the counter is less than the total, the result will be greater than 1.]
[If the square of the counter is greater than the total, the result will be less than 1.]
Pickup a passenger going to Magic Eight.
1 is waiting at Starchild Numerology.
Go to Starchild Numerology:e 1 r 3 r 1 l 1 l 2 l.
Pickup a passenger going to Magic Eight.
Go to Magic Eight:w 1 r 2 r 1 r.
Switch to plan F if no one is waiting.
[We compare the result of the division against 1 to decide our next course of action.]
[If it is greater or equal, the loop should end, and the counter is equal to the floor of the square root.]
[If it is less, the loop should continue.]
Pickup a passenger going to Riverview Bridge.
[Whoops, we don't actually need this anymore.]
Go to Joyless Park:e 2 l 4 r.
Pickup a passenger going to Cyclone.
[We will clone the total later, so we can reuse it in the next loop iteration.]
Pickup a passenger going to The Underground.
Go to The Underground:w 1 l.
[Instead of taking the number 1 and subtracting it from the counter, we can do an optimization here.]
[The Underground is a destination that takes 1 passenger, and subtracts 1 from it.]
[If the result is positive, it returns the result. Otherwise, it returns no one.]
[The latter result will not happen for us, however.]
Pickup a passenger going to Cyclone.
[We will clone the counter later, so we can reuse it in the next loop iteration.]
Go to Fueler Up:s.
[Gotta remember to stop for gas!]
Go to Riverview Bridge:n 3 l.
[So long, Magic Eight result!]
Go to Cyclone:w 2 l.
Switch to plan E.
[Reset everything, and loop back to the start of plan E.]
[F]
Go to Joyless Park:e 2 l 4 r.
Pickup a passenger going to What's The Difference.
Pickup a passenger going to Cyclone.
[Once we've figured out the square root of the total, we're still not done.]
Go to Cyclone:w 1 r 2 l 2 l.
Pickup a passenger going to Multiplication Station.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station:s 1 l 2 r 4 l.
[We actually square the square root...]
Pickup a passenger going to What's The Difference.
Go to What's The Difference:n 2 l 1 r 3 l.
[...and subtract it from the total at What's The Difference (which subtracts dropped-off passengers).]
Pickup a passenger going to Knots Landing.
Go to Knots Landing:e 4 r 1 l.
[If the result is 0, the total is a perfect square, and a truthy value should be output.]
[If the result is nonzero, the total is not a perfect square, and a falsy value should be output.]
[Luckily, Knots Landing does our work for us.]
[Knots Landing inverts the boolean logic of numeric passengers (i.e. 0 becomes 1, nonzero becomes 0).]
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery:w 1 l.
[Convert it to a string...]
Pickup a passenger going to Post Office.
Go to Post Office:n 1 l 1 r.
[...and output it.]
[We would exit the program by going to the Taxi Garage, but that takes bytes.]
[The boss fires us because we didn't bring the taxi back to the garage, but that gets output to STDERR, so that's OK.]
```
[Answer]
# [Vyxal](https://github.com/Vyxal/Vyxal), 5 bytes
```
K¬≤‚àë‚àÜ¬≤
```
[Try it Online!](https://vyxal.pythonanywhere.com/?v=2#WyIiLCIiLCJLwrLiiJHiiIbCsiIsIiIsIjQyIl0=)
```
   ‚àÜ¬≤ # Is
  ‚àë   # The sum of
 ¬≤    # The squares of
K     # The factors of the input
   ‚àÜ¬≤ # A perfect square?
```
[Answer]
# Vyxal, 14 bytes ([Test cases](https://vyxal.pythonanywhere.com/?v=2#WyIiLCIiLCLGm8m+4biKVOKAusabOio7xpIr4oiaOuG5mT0iLCIiLCIxLDQyLDI0NiwxMCwxNiJd))
```
…æ·∏äT‚Ä∫∆õ:*;∆í+‚àö:·πô=
```
[Answer]
# [Husk](https://github.com/barbuz/Husk), 6 bytes
```
¬£ƒ∞‚ñ°·πÅ‚ñ°·∏ä
```
[Try it online!](https://tio.run/##yygtzv6fG5yvnaCtpKBrp6B0Yn3xo6bGokPb/h9afGTDo2kLH@5sBJE7uv7//29ixGXIZWRixmVowGVoBgA "Husk ‚Äì Try It Online")
### Explanation
```
¬£ƒ∞‚ñ°·πÅ‚ñ°·∏ä  -- example input 12
     ·∏ä  -- divisors: [1,2,3,4,6,12]
   ·πÅ    -- map the following ..
    ‚ñ°   -- | square: [1,4,9,16,36,144]
        -- .. and sum: 210
¬£       -- is it element of (assumes sorted)
 ƒ∞‚ñ°     -- | list of squares: [1,4,9,16..196,225,..
```
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 6 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
√ÜD¬≤S√Ü¬≤
```
**[Try it online!](https://tio.run/##y0rNyan8//9wm8uhTcGH2w5t@v//v4kRAA "Jelly ‚Äì Try It Online")** Or see the [test-suite](https://tio.run/##y0rNyan8//9wm8uhTcGH2w5t@n90z@H2R01r3P//NzHSUTDUUTAyMQPSBkBsBgA "Jelly ‚Äì Try It Online").
### How?
```
√ÜD¬≤S√Ü¬≤ - Main Link: integer
√ÜD     - divisors
  ¬≤    - square
   S   - sum
    √Ü¬≤ - is square?
```
[Answer]
# [Gaia](https://github.com/splcurran/Gaia), 5 bytes
```
ds¬¶Œ£·ª•
```
[Try it online!](https://tio.run/##AScA2P9nYWlh//9kc8KmzqPhu6X/ZeKGkcKm/1s0MiAxIDI0NiAxMCAxNl0 "Gaia ‚Äì Try It Online")
[Answer]
# [Proton](https://github.com/alexander-liao/proton), 41 bytes
```
a=>sum(q*q for q:1..a+1if a%q<1)**.5%1==0
```
[Try it online!](https://tio.run/##KyjKL8nP@59m@z/R1q64NFejUKtQIS2/SKHQylBPL1HbMDNNIVG10MZQU0tLz1TV0NbW4H9BUWZeiUaahomRpiYXjGOIxDYyMUOWMUDmAGX@AwA "Proton ‚Äì Try It Online")
Similar approach to the Python answer.
[Answer]
# Mathematica, 32 bytes
```
IntegerQ@Sqrt[2~DivisorSigma~#]&
```
Pure function. Takes a number as input and returns `True` or `False` as output. Not entirely sure if there's a shorter method for checking perfect squares.
[Answer]
# [Octave](https://www.gnu.org/software/octave/) / MATLAB, 43 bytes
```
@(n)~mod(sqrt(sum(find(~mod(n,1:n)).^2)),1)
```
[Try it online!](https://tio.run/##y08uSSxL/Z9mq6en999BI0@zLjc/RaO4sKhEo7g0VyMtMy9FAyyUp2NolaepqRdnpKmpY6j5P03DxEiTK03DEEQYmZiB2QZg0kzzPwA "Octave ‚Äì Try It Online")
[Answer]
# [Red](http://www.red-lang.org), 67 bytes
```
func[n][s: 0 repeat d n[if n % d = 0[s: d * d + s]](sqrt s)% 1 = 0]
```
[Try it online!](https://tio.run/##Rcm9CoAgGIXhvas4S9DPohINQTfRKt8QqeDyUWrXbzpUw4GH8wZr8maNpsYt2d18aCYdFwgEe9o9wYC1d2C0hStEjQZD2YhI1MUrJMS@hayV8hk8JzhMqnkpP6lp/l/xc84P "Red ‚Äì Try It Online")
[Answer]
# [Scala](http://www.scala-lang.org/), ~~68~~ 67 bytes
```
def j(s:Int)=Math.sqrt((1 to s).filter(s%_<1).map(a=>a*a).sum)%1==0
```
[Try it online!](https://tio.run/##JcqxCoMwEADQvV@RRbgrIRgRh9IIjh2c@gHlqpEqGqN3BaH029Ohb37c0UxpfU6@E9XSGJQ/xIeeVRPjJ/V@UBPw5RYEXUvyMrztAmCVrIrRDOMsfgfOHleLZqEI5Go6Exp@L5hZ5/J09xuUhba6KCttc22r/zxcHfcxyBxgggMRT9@Ufg "Scala ‚Äì Try It Online")
]