57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime;
|
|||
|
|
|||
|
namespace IsPrimeFP{
|
|||
|
class Program{
|
|||
|
static void Main(string[] args){
|
|||
|
string readLine = "";
|
|||
|
while (readLine != "exit"){
|
|||
|
Console.WriteLine("Enter a number: ");
|
|||
|
readLine = Console.ReadLine();
|
|||
|
if (int.TryParse(readLine, out int enteredNumber))
|
|||
|
{
|
|||
|
if (!IsPrime(enteredNumber)){
|
|||
|
Console.WriteLine("Number {0} is a prime number", enteredNumber);
|
|||
|
}
|
|||
|
else{
|
|||
|
Console.WriteLine("Number {0} is not a prime number", enteredNumber);
|
|||
|
}
|
|||
|
}
|
|||
|
else if (readLine == "prime")
|
|||
|
{
|
|||
|
Console.WriteLine("Entering Infinite loop:");
|
|||
|
IEnumerable<int> ep = GetPrimes();
|
|||
|
IEnumerator<int> enump = ep.GetEnumerator();
|
|||
|
while (true)
|
|||
|
{
|
|||
|
enump.MoveNext();
|
|||
|
Console.WriteLine(enump.Current);
|
|||
|
}
|
|||
|
}
|
|||
|
else{
|
|||
|
Console.WriteLine("Not a valid number!");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
static IEnumerable<int> GetPrimes()
|
|||
|
{
|
|||
|
int i = 2;
|
|||
|
while (true)
|
|||
|
{
|
|||
|
if (!IsPrime(i))
|
|||
|
{
|
|||
|
yield return i;
|
|||
|
}
|
|||
|
i++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static bool IsPrime(int n){
|
|||
|
return !Enumerable.Range(2, n-2).All(num => n % num != 0);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|