V (vim), 3534 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input line, enter insert mode
<C-r>= evaluate the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 35 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input line, enter insert mode
<C-r>= evaluate the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 34 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input line, enter insert mode
<C-r>= evaluate the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 35 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input linline, enter insert mode
<C-r>= evaluteevaluate the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 35 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input lin, enter insert mode
<C-r>= evalute the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 35 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input line, enter insert mode
<C-r>= evaluate the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.
V (vim), 35 bytes
C<C-r>=sqrt(<C-r>")
<esc>:s/.\+\.0\n/
:s/.\+/1
Returns empty string for a square, 1 for non-square.
Explanation
C<C-r>=sqrt(<C-r>")
C cut the input lin, enter insert mode
<C-r>= evalute the following math command:
sqrt( ) square root of
<C-r>" cut input line in register "
<esc>:s/.\+\.0\n/
<esc> exit insert mode
:s/.\+\.0\n/ remove instance of <digits>.0
this removes a perfect square root.
:s/.\+/1 replace any other non-newline chars left with
a single 1.