From d2208f2f6a18b588a89b36f3e0eb4f0f2fb9d8db Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Tue, 17 Dec 2019 11:50:54 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20Int64.IsPrime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- X10D/Int64Extensions.cs | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/X10D/Int64Extensions.cs b/X10D/Int64Extensions.cs index 908df84..8161763 100644 --- a/X10D/Int64Extensions.cs +++ b/X10D/Int64Extensions.cs @@ -204,7 +204,7 @@ return false; } - long boundary = (long)Math.Floor(Math.Sqrt(number)); + long boundary = (long) Math.Floor(Math.Sqrt(number)); for (int i = 3; i <= boundary; i += 2) { if (number % i == 0) @@ -216,6 +216,41 @@ return true; } + /// + /// Determines if the is a prime number. + /// + /// The number. + /// Returns if is prime, + /// otherwise. + public static bool IsPrime(this ulong number) + { + if (number <= 1) + { + return false; + } + + if (number == 2) + { + return true; + } + + if (number % 2 == 0) + { + return false; + } + + ulong boundary = (ulong) Math.Floor(Math.Sqrt(number)); + for (uint i = 3; i <= boundary; i += 2) + { + if (number % i == 0) + { + return false; + } + } + + return true; + } + /// /// Gets an boolean value that represents this integer. ///