Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- class AllPrimesToNumber
- {
- public static long inputNumber = 0;
- public static long currentNumber;
- public static bool isNotPrime = false;
- public static List<long> primes = new List<long>();
- public static void checkIfPrime()
- {
- foreach (long prime in primes)
- {
- isNotPrime = currentNumber % prime == 0;
- if (isNotPrime || prime >= Math.Sqrt(currentNumber))
- {
- break;
- }
- }
- if (!isNotPrime) primes.Add(currentNumber);
- currentNumber = currentNumber + 2;
- }
- static void Main()
- {
- if (!File.Exists("primes.txt"))
- {
- StreamWriter createFile = new StreamWriter("primes.txt");
- createFile.Write("2 3 5 7 ");
- createFile.Close();
- }
- string primesFile = File.ReadAllText("primes.txt");
- string[] primesString = primesFile.Split(' ','\n', '\t');
- long number;
- for (long i = 0; i < primesString.Length - 1; i++)
- {
- number = long.Parse(primesString[i]);
- primes.Add(number);
- }
- int numOfPrimesInFile = primesString.Length - 1;
- long valueOfLastPrimeInFile = long.Parse(primesString[numOfPrimesInFile - 1]);
- currentNumber = valueOfLastPrimeInFile + 2;
- Console.WriteLine("\nNumber of primes in file: " + numOfPrimesInFile);
- Console.WriteLine("Last prime in file: " + valueOfLastPrimeInFile + "\n");
- Console.WriteLine("1 - Check if number is prime");
- Console.WriteLine("2 - Find next prime numbers and add them to the file");
- Console.WriteLine("3 - Show prime numbers in range (between 1 and " + valueOfLastPrimeInFile + ")");
- Console.Write("\nYour choice: ");
- int choice = int.Parse(Console.ReadLine());
- Console.WriteLine();
- switch (choice)
- {
- case 1:
- {
- Console.Write("Enter the number you want to check: ");
- inputNumber = long.Parse(Console.ReadLine());
- if (inputNumber <= valueOfLastPrimeInFile)
- {
- if (primes.Contains(inputNumber))
- Console.WriteLine(inputNumber + " is prime");
- else
- Console.WriteLine(inputNumber + " is not prime");
- }
- else
- {
- while (currentNumber <= inputNumber)
- {
- checkIfPrime();
- }
- if (primes.Contains(inputNumber))
- Console.WriteLine(inputNumber + " is prime");
- else
- Console.WriteLine(inputNumber + " is not prime");
- }
- break;
- }
- case 2:
- {
- Console.Write("How many prime numbers you want to add to the file?: ");
- int numOfprimesToFind = int.Parse(Console.ReadLine());
- while (primes.Count < numOfprimesToFind + numOfPrimesInFile)
- {
- checkIfPrime();
- }
- break;
- }
- case 3:
- {
- Console.Write("First number: ");
- long startRangeInput = long.Parse(Console.ReadLine());
- Console.Write("Second number: ");
- long endRange = long.Parse(Console.ReadLine());
- long startRange = startRangeInput;
- while (!primes.Contains(startRange))
- {
- startRange--;
- }
- if (startRangeInput!=startRange)
- startRange = primes.IndexOf(startRange) + 1;
- else
- startRange = primes.IndexOf(startRange);
- while (!primes.Contains(endRange))
- {
- endRange--;
- }
- endRange = primes.IndexOf(endRange);
- for (int i = (int)startRange; i <= (int)endRange; i++)
- {
- Console.WriteLine(primes[i]);
- }
- break;
- }
- }
- if (numOfPrimesInFile < primes.Count)
- {
- StreamWriter outputFile = new StreamWriter("primes.txt", true);
- for (int i = numOfPrimesInFile; i < primes.Count; i++)
- {
- outputFile.Write(primes[i] + " ");
- }
- outputFile.Close();
- Console.WriteLine((primes.Count - numOfPrimesInFile - 1) + " were added to the file");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement