Primality by trial division: Difference between revisions

→‎{{header|BASIC}}: Replaced defective example: always returned true, didn't handle 3
(→‎{{header|BASIC}}: Replaced defective example: always returned true, didn't handle 3)
Line 74:
{{works with|QuickBasic|4.5}}
 
Going with the classicReturns 1 for "true" andprime, 0 for "false":non-prime
FUNCTION prime% (n!)
IF n = 2 THEN prime = 1
IF n <= 1 OR n MOD 2 = 0 THEN prime = 0
FOR a = 3 TO INT(SQR(n)) STEP 2
IF n MOD a = 0 THEN prime = 0
NEXT a
prime = 1
END FUNCTION
 
<lang BASIC>FUNCTION prime% (n!)
STATIC i AS INTEGER
IF n = 2 OR n = 3 THEN
prime = 1
IFELSEIF n <= 1 OR n MOD 2 = 0 THEN prime = 0
prime = 0
ELSE
prime = 1
FOR ai = 3 TO INT(SQR(n)) STEP 2
IF n MOD ai = 0 THEN prime = 0
IF n = 2 THEN prime = 10
EXIT FUNCTION
END IF
NEXT ai
END IF
END FUNCTION
 
' Test and display primes 1 .. 50
DECLARE FUNCTION prime% (n!)
FOR n = 1 TO 50
IF prime(n) = 1 THEN PRINT n;
NEXT n</lang>
 
Output:
<pre> 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47</pre>
 
=={{header|C}}==
Anonymous user