Primality by trial division: Difference between revisions
Content added Content deleted
(Added BASIC example.) |
|||
Line 23: | Line 23: | ||
return Result; |
return Result; |
||
end Is_Prime; |
end Is_Prime; |
||
=={{header|BASIC}}== |
|||
'''Compiler:''' [[QuickBasic]] 4.5 |
|||
Going with the classic 1 for "true" and 0 for "false": |
|||
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 |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
Revision as of 07:25, 21 November 2007
Primality by trial division
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Write a boolean function that tells whether a given integer is prime. Remember that 1 and all non-positive numbers are not prime.
Ada
function Is_Prime(Item : Positive) return Boolean is Result : Boolean := True; Test : Natural; begin if Item /= 2 and Item mod 2 = 0 then Result := False; else Test := 3; while Test < Integer(Sqrt(Float(Item))) loop if Item mod Test = 0 then Result := False; exit; end if; Test := Test + 2; end loop; end if; return Result; end Is_Prime;
BASIC
Compiler: QuickBasic 4.5
Going with the classic 1 for "true" and 0 for "false":
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
Ruby
def prime(a) if a==2 return true end if a<=1 || a%2==0 return false end d=3 while d <= Math.sqrt(a) do if a%d==0 return false end d+=2 end return true end
Java
public static boolean prime(long a){ if(a == 2){ return true; }else if(a <= 1 || a % 2 == 0){ return false; } for(long n= 3; n <= (long)Math.sqrt(a); n+= 2){ if(a % n == 0){ return false; } } return true; }