Challenges

Getting perfect squares, differently

+1
−0

Create a program that gets all perfect squares starting from 0 or 1 without using any methods of multiplication (repetitive addition) and exponentiation (repetitive multiplication). Output them for validation.

Things such as built-ins/functions related to these unusable methods can't be used either. pow(x,y) and x**y are examples of these unusable methods.

A simple, yet tricky activity! Being code-golf, the shortest program in each programming language wins!

Why does this post require moderator attention?
Why should this post be closed?

Banning builtins isn't a great idea (4 comments)
What exactly do you mean by "all"? (2 comments)

+1
−0

Husk, 3 bytes

∫İ1

Try it online!

Scan from left over all odd numbers with addition.

Uses this formula:

$$n^2 = \sum_{k=1}^n(2k-1)$$

Why does this post require moderator attention?

+1
−0

Japt, 9 bytes

No infinite lists in Japt so we'll have to go with a recursive solution.

ßOpTµJJµ2

Test it

ßOpTµJJµ2
ß             :Recursive call with (irrelevant) argument
Op           :  Output with trailing newline (returns undefined and second argument is ignored)
TµJ        :    Decrement T (initially 0) by J (initially -1)
Jµ2     :    Decrement J by 2
Why does this post require moderator attention?

+1
−0

JavaScript (V8), 28 bytes

for(x=y=0;;++y)print(x+=++y)

Try it online!

Why does this post require moderator attention?

+0
−0

PHP, 57 bytes

<?php $x=0;$y=1;while(1){echo(string)($x+=$y)." ";\$y+=2;}

Try it online!

PHP's a nice language, I tell ya.

Why does this post require moderator attention?

+0
−0

C (clang), 4745 43 bytes

i,j;main(){for(;printf("%i ",i-=~j);j+=2);}

Try it online!

Golfed 2 bytes from inspiration of @Shaggy's answer. Golfed 2 bytes by @m90.

Why does this post require moderator attention?

Improvement (1 comment)
+0
−0

Lua, 41 40 bytes

x=0 y=1while""do print(x)x=x+y y=y+2 end

Try it online!

Why does this post require moderator attention?

+0
−0

Python 3, 34 bytes

x=0;y=1
while 1:x+=y;print(x);y+=2

Try it online!

1 is the int equivalent to True, which helps save bytes.

Why does this post require moderator attention?

Featured
Hot Posts
Challenges — "Hello, World!"
Challenges — Coat of Many Colours
Challenges — Cumulative Counts This community is part of the Codidact network. We have other communities too — take a look!