Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- namespace PrimalNumbers
- {
- public class Program
- {
- const long howManyNumbersToGenerate = 1000000;
- const int biggestNumber = 1000000000;
- const string fileNameRandomNumbers = "Losowe.txt";
- const string fileNamePrimesNumbers = "Pierwsze.txt";
- static void Main(string[] args)
- {
- int decision = 0;
- do
- {
- Console.WriteLine("1. Generuj plik\n 2.Znajdź liczby pierwsze.\n3. Wyjście");
- if (int.TryParse(Console.ReadLine(), out decision))
- {
- switch (decision)
- {
- case 1:
- var listWithRandomNumbers = GenerateFileWithRandomNumbers();
- SaveRandomNumbersToFile(listWithRandomNumbers);
- break;
- case 2:
- var primes = CalculatePrimeNumbers();
- SavePrimesToFile(primes);
- break;
- }
- }
- } while (decision != 3);
- }
- private static void SavePrimesToFile(List<int> primes)
- {
- SaveFile(fileNamePrimesNumbers, primes);
- }
- private static void SaveFile(string filename, List<int> numbers)
- {
- Console.WriteLine("Podaj pełną ścieżkę do zapisania do pliku z rozszerzeniem .txt (naciśnij enter żeby utworzyć plik, tam gdzie jest plik wykonywalny.");
- try
- {
- var path = Console.ReadLine();
- if (string.IsNullOrEmpty(path))
- {
- var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
- path = Path.Combine(currentDirectory, filename);
- File.WriteAllLines(path, numbers.Select(x => x.ToString()));
- }
- else
- {
- File.WriteAllLines(path, numbers.Select(x => x.ToString()));
- }
- }
- catch (Exception exception)
- {
- Console.WriteLine(exception.Message);
- }
- }
- private static List<int> CalculatePrimeNumbers()
- {
- Console.WriteLine("Podaj pełną ścieżkę do odczytania do pliku z rozszerzeniem .txt (naciśnij enter żeby odczytaj plik, tam gdzie jest plik wykonywalny.");
- var primes = new List<int>();
- var numbers = LoadFromFile();
- foreach (var number in numbers)
- {
- if (CheckIfPrime(number))
- {
- primes.Add(number);
- }
- }
- return primes;
- }
- private static List<int> LoadFromFile()
- {
- var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
- var numbers = new List<int>();
- try
- {
- var data = File.ReadAllLines(Path.Combine(currentDirectory, fileNameRandomNumbers));
- numbers = data.Select(x => int.Parse(x)).ToList();
- }
- catch(Exception exception)
- {
- Console.WriteLine(exception.Message);
- }
- return numbers;
- }
- private static void SaveRandomNumbersToFile(List<int> numbers)
- {
- SaveFile(fileNameRandomNumbers, numbers);
- Console.WriteLine("Podaj pełną ścieżkę do zapisania do pliku z rozszerzeniem .txt (naciśnij enter żeby utworzyć plik, tam gdzie jest plik wykonywalny.");
- }
- private static List<int> GenerateFileWithRandomNumbers()
- {
- var numbers = new List<int>();
- var randomEngine = new Random();
- for (int i = 0; i < howManyNumbersToGenerate; i++)
- {
- var randomNumber = randomEngine.Next(0, biggestNumber);
- numbers.Add(randomNumber);
- }
- return numbers;
- }
- private static bool CheckIfPrime(int number)
- {
- if (number == 1) return false;
- if (number == 2) return true;
- if (number % 2 == 0) return false;
- var boundary = (int)Math.Floor(Math.Sqrt(number));
- for (int i = 2; i < boundary; i++)
- {
- if (number % i == 0) return false;
- }
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement