# Find the perfect square!

## 05AB1E, 96 5 bytes

LnIÖO


Try it online or verify all test cases.

Previous 9 6 bytes approach:

LR.ΔnÖ


-3 bytes thanks to @ovs.

Try it online or verify all test cases.

Explanation:

L       # Push a list in the range [1, (implicit) input]
n      # Take the square of each value in the list
IÖ    # Check which squares are divisible by the input (1 if truthy; 0 if falsey)
O   # And sum those checks
# (after which this sum is output implicitly as result)

L       # Push a list in the range [1, (implicit) input]
R      # Reverse it to [input, 1]
.Δ    # Find the first value in this list which is truthy for:
n   #  Square the current value
Ö  #  Check if the (implicit) input is evenly divisible by this square
# (after which the found value is output implicitly as result)


## Jelly, 5 bytes

Ḷ²%ċ0


Uses the formula from the OEIS: the number of solutions to $$x^2 \equiv 0 \ (\mathrm{mod} \ n)$$ Explanation:

• implicit input
• range 0..n-1,
• square each
• modulo input (I got this part to work via trial and error)
• count zeroes
• implicit print

Try it online!

## Jelly, 6 bytes

ÆE:2ÆẸ


A monadic Link accepting a positive integer which yields a positive integer.

Try it online! Or see the first 100.

### How?

ÆE:2ÆẸ - Link: integer, X          e.g. 9587193
ÆE     - factorisation vector (X)       [0,1,0,4,3] (since 2°×3¹×5°×7⁴×11³=9587193)
:2   - integer divide by two          [0,0,0,2,1]
ÆẸ - evaluate factorisation vector  539         (since 2°×3°×5°×7²×11¹=539)