Advertisement
kdikov

Prime numbers

Nov 10th, 2012
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4.  
  5. class AllPrimesToNumber
  6. {
  7.     public static long inputNumber = 0;
  8.     public static long currentNumber;
  9.     public static bool isNotPrime = false;
  10.     public static List<long> primes = new List<long>();
  11.  
  12.     public static void checkIfPrime()
  13.     {
  14.         foreach (long prime in primes)
  15.         {
  16.             isNotPrime = currentNumber % prime == 0;
  17.             if (isNotPrime || prime >= Math.Sqrt(currentNumber))
  18.             {
  19.                 break;
  20.             }
  21.         }
  22.         if (!isNotPrime) primes.Add(currentNumber);
  23.         currentNumber = currentNumber + 2;
  24.     }
  25.  
  26.     static void Main()
  27.     {
  28.         if (!File.Exists("primes.txt"))
  29.         {
  30.             StreamWriter createFile = new StreamWriter("primes.txt");
  31.             createFile.Write("2 3 5 7 ");
  32.             createFile.Close();
  33.         }
  34.  
  35.         string primesFile = File.ReadAllText("primes.txt");
  36.         string[] primesString = primesFile.Split(' ','\n', '\t');
  37.  
  38.         long number;
  39.         for (long i = 0; i < primesString.Length - 1; i++)
  40.         {
  41.             number = long.Parse(primesString[i]);
  42.             primes.Add(number);
  43.         }
  44.  
  45.         int numOfPrimesInFile = primesString.Length - 1;
  46.         long valueOfLastPrimeInFile = long.Parse(primesString[numOfPrimesInFile - 1]);
  47.        
  48.         currentNumber = valueOfLastPrimeInFile + 2;
  49.        
  50.        
  51.         Console.WriteLine("\nNumber of primes in file: " + numOfPrimesInFile);
  52.         Console.WriteLine("Last prime in file: " + valueOfLastPrimeInFile + "\n");
  53.  
  54.         Console.WriteLine("1 - Check if number is prime");
  55.         Console.WriteLine("2 - Find next prime numbers and add them to the file");
  56.         Console.WriteLine("3 - Show prime numbers in range (between 1 and " + valueOfLastPrimeInFile + ")");
  57.         Console.Write("\nYour choice: ");
  58.         int choice = int.Parse(Console.ReadLine());
  59.         Console.WriteLine();
  60.         switch (choice)
  61.         {
  62.             case 1:
  63.                 {
  64.                     Console.Write("Enter the number you want to check: ");
  65.                     inputNumber = long.Parse(Console.ReadLine());
  66.                     if (inputNumber <= valueOfLastPrimeInFile)
  67.                     {
  68.                         if (primes.Contains(inputNumber))
  69.                             Console.WriteLine(inputNumber + " is prime");
  70.                         else
  71.                             Console.WriteLine(inputNumber + " is not prime");
  72.                     }
  73.                     else
  74.                     {
  75.                         while (currentNumber <= inputNumber)
  76.                         {
  77.                             checkIfPrime();
  78.                         }
  79.                         if (primes.Contains(inputNumber))
  80.                             Console.WriteLine(inputNumber + " is prime");
  81.                         else
  82.                             Console.WriteLine(inputNumber + " is not prime");
  83.                     }
  84.                     break;
  85.                 }
  86.             case 2:
  87.                 {
  88.                     Console.Write("How many prime numbers you want to add to the file?: ");
  89.                     int numOfprimesToFind = int.Parse(Console.ReadLine());
  90.                     while (primes.Count <  numOfprimesToFind + numOfPrimesInFile)
  91.                     {
  92.                         checkIfPrime();
  93.                     }
  94.                     break;
  95.                 }
  96.  
  97.             case 3:
  98.                 {
  99.                     Console.Write("First number: ");
  100.                     long startRangeInput = long.Parse(Console.ReadLine());
  101.                     Console.Write("Second number: ");
  102.                     long endRange = long.Parse(Console.ReadLine());
  103.                     long startRange = startRangeInput;
  104.                     while (!primes.Contains(startRange))
  105.                     {
  106.                         startRange--;
  107.                     }
  108.                     if (startRangeInput!=startRange)
  109.                         startRange = primes.IndexOf(startRange) + 1;
  110.                     else
  111.                         startRange = primes.IndexOf(startRange);
  112.  
  113.                     while (!primes.Contains(endRange))
  114.                     {
  115.                         endRange--;
  116.                     }
  117.                     endRange = primes.IndexOf(endRange);
  118.  
  119.                     for (int i = (int)startRange; i <= (int)endRange; i++)
  120.                     {
  121.                         Console.WriteLine(primes[i]);
  122.                     }
  123.                     break;
  124.                 }
  125.         }
  126.  
  127.         if (numOfPrimesInFile < primes.Count)
  128.         {
  129.             StreamWriter outputFile = new StreamWriter("primes.txt", true);
  130.             for (int i = numOfPrimesInFile; i < primes.Count; i++)
  131.             {
  132.                 outputFile.Write(primes[i] + " ");
  133.             }
  134.             outputFile.Close();
  135.             Console.WriteLine((primes.Count - numOfPrimesInFile - 1) + " were added to the file");
  136.         }
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement