Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
55
Task/Almost-prime/C-sharp/almost-prime.cs
Normal file
55
Task/Almost-prime/C-sharp/almost-prime.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace AlmostPrime
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
foreach (int k in Enumerable.Range(1, 5))
|
||||
{
|
||||
KPrime kprime = new KPrime() { K = k };
|
||||
Console.WriteLine("k = {0}: {1}",
|
||||
k, string.Join<int>(" ", kprime.GetFirstN(10)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class KPrime
|
||||
{
|
||||
public int K { get; set; }
|
||||
|
||||
public bool IsKPrime(int number)
|
||||
{
|
||||
int primes = 0;
|
||||
for (int p = 2; p * p <= number && primes < K; ++p)
|
||||
{
|
||||
while (number % p == 0 && primes < K)
|
||||
{
|
||||
number /= p;
|
||||
++primes;
|
||||
}
|
||||
}
|
||||
if (number > 1)
|
||||
{
|
||||
++primes;
|
||||
}
|
||||
return primes == K;
|
||||
}
|
||||
|
||||
public List<int> GetFirstN(int n)
|
||||
{
|
||||
List<int> result = new List<int>();
|
||||
for (int number = 2; result.Count < n; ++number)
|
||||
{
|
||||
if (IsKPrime(number))
|
||||
{
|
||||
result.Add(number);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue