This commit is contained in:
MarcUs7i 2025-05-10 22:58:56 +02:00
parent e487452b18
commit 0e72a5eb05
9 changed files with 146 additions and 57 deletions

View file

@ -6,5 +6,5 @@ namespace Numbers.NumberFactory.NumberImpls;
/// <inheritdoc cref="AbstractNumbers" />
public sealed class EvenNumbers(long lowerBound, long upperBound) : AbstractNumbers(lowerBound, upperBound)
{
protected override bool PickNumber(long number) => false; // TODO
protected override bool PickNumber(long number) => number % 2 == 0;
}

View file

@ -6,5 +6,5 @@ namespace Numbers.NumberFactory.NumberImpls;
/// <inheritdoc cref="AbstractNumbers" />
public sealed class OddNumbers(long lowerBound, long upperBound) : AbstractNumbers(lowerBound, upperBound)
{
protected override bool PickNumber(long number) => false; // TODO
protected override bool PickNumber(long number) => number % 2 != 0;
}

View file

@ -6,5 +6,30 @@ namespace Numbers.NumberFactory.NumberImpls;
/// <inheritdoc cref="AbstractNumbers" />
public sealed class PrimeNumbers(long lowerBound, long upperBound) : AbstractNumbers(lowerBound, upperBound)
{
protected override bool PickNumber(long number) => false; // TODO
protected override bool PickNumber(long number)
{
if (number < 2)
{
return false;
}
if (number == 2)
{
return true;
}
if (number % 2 == 0)
{
return false;
}
long sqrtNum = (long)Math.Sqrt(number);
for (int i = 3; i <= sqrtNum; i += 2)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
}

View file

@ -6,5 +6,5 @@ namespace Numbers.NumberFactory.NumberImpls;
/// <inheritdoc cref="AbstractNumbers" />
public sealed class SquareNumbers(long lowerBound, long upperBound) : AbstractNumbers(lowerBound, upperBound)
{
protected override bool PickNumber(long number) => false; // TODO
protected override bool PickNumber(long number) => Math.Sqrt(number) % 1 == 0;
}