Prime decomposition: Difference between revisions

Line 1,062:
9220 i=i/ca
9230 RETURN</syntaxhighlight>
 
==={{header|Craft Basic}}===
<syntaxhighlight lang="basic">define limit = 20, loops = 0
 
dim list[limit]
 
input "loops?", loops
 
for x = 1 to loops
 
let n = x
print n, " : ",
gosub collectprimefactors
 
for y = 0 to c
 
if list[y] then
 
print list[y], " ",
let list[y] = 0
 
endif
 
next y
 
print ""
 
next x
 
end
 
sub collectprimefactors
 
let c = 0
 
do
 
if int(n mod 2) = 0 then
 
let n = int(n / 2)
let list[c] = 2
let c = c + 1
 
endif
 
wait
 
loop int(n mod 2) = 0
 
for i = 3 to sqrt(n) step 2
 
do
 
if int(n mod i) = 0 then
 
let n = int(n / i)
let list[c] = i
let c = c + 1
 
endif
 
wait
 
loop int(n mod i) = 0
 
next i
 
if n > 2 then
 
let list[c] = n
let c = c + 1
 
endif
 
return</syntaxhighlight>
{{out| Output}}<pre>
loops? 20
1 :
2 : 2
3 : 3
4 : 2 2
5 : 5
6 : 2 3
7 : 7
8 : 2 2 2
9 : 3 3
10 : 2 5
11 : 11
12 : 2 2 3
13 : 13
14 : 2 7
15 : 3 5
16 : 2 2 2 2
17 : 17
18 : 2 3 3
19 : 19
20 : 2 2 5
</pre>
 
==={{header|FreeBASIC}}===
305

edits