Primality by Wilson's theorem: Difference between revisions
Content added Content deleted
(Jakt) |
(Added Applesoft BASIC, Chipmunk Basic, GW-BASIC, Minimal BASIC, MSX Basic and Quite BASIC) |
||
Line 390: | Line 390: | ||
=={{header|BASIC}}== |
=={{header|BASIC}}== |
||
==={{header|Applesoft BASIC}}=== |
|||
{{works with|Chipmunk Basic}} |
|||
{{works with|GW-BASIC}} |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="qbasic">100 HOME : REM 100 CLS for Chipmunk Basic |
|||
110 PRINT "Primes below 100"+CHR$(10) |
|||
120 FOR n = 2 TO 100 |
|||
130 GOSUB 160 |
|||
140 NEXT n |
|||
150 END |
|||
160 rem FUNCTION WilsonPrime(n) |
|||
170 fct = 1 |
|||
180 FOR i = 2 TO n-1 |
|||
181 a = fct * i |
|||
190 fct = a - INT(a / n) * n |
|||
200 NEXT i |
|||
210 IF fct = n-1 THEN PRINT i;" "; |
|||
220 RETURN</syntaxhighlight> |
|||
==={{header|BASIC256}}=== |
==={{header|BASIC256}}=== |
||
{{trans|FreeBASIC}} |
{{trans|FreeBASIC}} |
||
Line 405: | Line 424: | ||
next i |
next i |
||
end</syntaxhighlight> |
end</syntaxhighlight> |
||
==={{header|Chipmunk Basic}}=== |
|||
{{works with|Chipmunk Basic|3.6.4}} |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="qbasic">100 cls |
|||
110 print "Primes below 100"+chr$(10) |
|||
120 for i = 2 to 100 |
|||
130 wilsonprime(i) |
|||
140 next i |
|||
150 end |
|||
160 function wilsonprime(n) |
|||
170 fct = 1 |
|||
180 for i = 2 to n-1 |
|||
190 fct = (fct*i) mod n |
|||
200 next i |
|||
210 if fct = n-1 then print i; |
|||
220 end function</syntaxhighlight> |
|||
==={{header|GW-BASIC}}=== |
|||
{{works with|Chipmunk Basic}} |
|||
{{works with|PC-BASIC|any}} |
|||
{{works with|MSX_Basic}} |
|||
{{works with|QBasic}} |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="qbasic">100 CLS : REM 100 CLS for Chipmunk Basic |
|||
110 PRINT "Primes below 100"+CHR$(10) |
|||
120 FOR N = 2 TO 100 |
|||
130 GOSUB 160 |
|||
140 NEXT N |
|||
150 END |
|||
160 REM FUNCTION WilsonPrime(n) |
|||
170 FCT = 1 |
|||
180 FOR I = 2 TO N-1 |
|||
190 FCT = (FCT*I) MOD N |
|||
200 NEXT I |
|||
210 IF FCT = N-1 THEN PRINT I;" "; |
|||
220 RETURN</syntaxhighlight> |
|||
==={{header|Minimal BASIC}}=== |
|||
{{works with|QBasic}} |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="qbasic">110 PRINT "Primes below 100" |
|||
120 FOR n = 2 TO 100 |
|||
130 GOSUB 160 |
|||
140 NEXT n |
|||
150 GOTO 250 |
|||
160 rem FUNCTION WilsonPrime(n) |
|||
170 LET f = 1 |
|||
180 FOR i = 2 TO n-1 |
|||
181 LET a = f * i |
|||
190 LET f = a - INT(a / n) * n |
|||
200 NEXT i |
|||
210 IF f = n-1 THEN 230 |
|||
220 RETURN |
|||
230 PRINT i |
|||
240 RETURN |
|||
250 END</syntaxhighlight> |
|||
==={{header|MSX Basic}}=== |
|||
The [[#GW-BASIC|GW-BASIC]] solution works without any changes. |
|||
==={{header|QBasic}}=== |
==={{header|QBasic}}=== |
||
Line 423: | Line 502: | ||
IF wilsonprime(i) THEN PRINT i; " "; |
IF wilsonprime(i) THEN PRINT i; " "; |
||
NEXT i</syntaxhighlight> |
NEXT i</syntaxhighlight> |
||
==={{header|Quite BASIC}}=== |
|||
{{works with|QBasic}} |
|||
{{trans|FreeBASIC}} |
|||
<syntaxhighlight lang="qbasic">100 CLS |
|||
110 PRINT "Primes below 100": PRINT |
|||
120 FOR n = 2 TO 100 |
|||
130 GOSUB 160 |
|||
140 NEXT n |
|||
150 GOTO 250 |
|||
160 rem FUNCTION WilsonPrime(n) |
|||
170 LET f = 1 |
|||
180 FOR i = 2 TO n-1 |
|||
181 LET a = f * i |
|||
190 LET f = a - INT(a / n) * n |
|||
200 NEXT i |
|||
210 IF f = n-1 THEN 230 |
|||
220 RETURN |
|||
230 PRINT i;" "; |
|||
240 RETURN |
|||
250 END</syntaxhighlight> |
|||
==={{header|PureBasic}}=== |
==={{header|PureBasic}}=== |