Count in factors: Difference between revisions

→‎DWScript: Add EasyLang
No edit summary
(→‎DWScript: Add EasyLang)
Line 1,569:
21: 3 * 7
22: 2 * 11</pre>
 
=={{header|EasyLang}}==
<syntaxhighlight lang="easylang">
func isPrime num . result$ .
if num < 2
result$ = "false"
break 1
.
if num mod 2 = 0 and num > 2
result$ = "false"
break 1
.
for i = 3 to sqrt num
if num mod i = 0
result$ = "false"
break 2
.
.
result$ = "true"
.
func decompose num . primes[] .
# If the number is prime, return the number itself
call isPrime num result$
if result$ = "true"
primes[] &= num
break 1
.
currentPrime = 2
currentNum = num
repeat
if currentNum mod currentPrime = 0
primes[] &= currentPrime
currentNum = currentNum / currentPrime
else
repeat
currentPrime += 1
call isPrime currentPrime result$
until result$ = "true"
.
.
call isPrime currentNum result$
until result$ = "true"
.
primes[] &= currentNum
.
# The number 30 can be changed if you want to
for i = 1 to 30
if i = 1
print "1: 1"
else
write i & ": "
call decompose i primes[]
for j = 1 to len primes[]
if j > 1
write " x "
.
write primes[j]
.
print ""
.
primes[] = [ ]
.
</syntaxhighlight>
{{out}}
<pre>
1: 1
2: 2
3: 3
4: 2 x 2
5: 5
6: 2 x 3
7: 7
8: 2 x 2 x 2
9: 3 x 3
10: 2 x 5
11: 11
12: 2 x 2 x 3
13: 13
14: 2 x 7
15: 3 x 5
16: 2 x 2 x 2 x 2
17: 17
18: 2 x 3 x 3
19: 19
20: 2 x 2 x 5
21: 3 x 7
22: 2 x 11
23: 23
24: 2 x 2 x 2 x 3
25: 5 x 5
26: 2 x 13
27: 3 x 3 x 3
28: 2 x 2 x 7
29: 29
30: 2 x 3 x 5
</pre>
 
=={{header|EchoLisp}}==
175

edits