Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DH
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.Write("Set prime limit: ");
- int limit = Convert.ToInt32(Console.ReadLine());
- int p = GenerateP(limit);
- int g = GenerateG(limit,p);
- Console.WriteLine("P: " + p);
- Console.WriteLine("G: " + g);
- Console.ReadKey();
- }
- static int GenerateP(int limit)
- {
- int[] primeArray = new int[limit];
- int counter = 0;
- for (int i = 0; i < limit; i++)
- {
- if (IsPrime(i))
- {
- primeArray[counter] = i;
- counter++;
- }
- }
- Random rnd = new Random();
- int random = rnd.Next(0, counter);
- return primeArray[random];
- }
- static int GenerateG(int limit, int p)
- {
- var temp = GetPrimeArray(limit);
- for (int i = 0; i < temp.Length; i++)
- Console.WriteLine(temp[i]);
- Random rnd = new Random();
- int random = rnd.Next(0, temp.Length);
- while (temp[random] >= p)
- {
- random = rnd.Next(0, temp.Length );
- }
- return temp[random];
- }
- static int[] GetPrimeArray(int limit)
- {
- int[] primeArray = new int[limit];
- int counter = 0;
- for (int i = 2; i < limit; i++)
- {
- if (IsPrime(i))
- {
- primeArray[counter] = i;
- counter++;
- }
- }
- return primeArray.Take(counter).ToArray();
- }
- static bool IsPrime(int number)
- {
- if (number == 1) return false;
- if (number == 2) return true;
- for (int i = 2; i <= Math.Ceiling(Math.Sqrt(number)); ++i)
- {
- if (number % i == 0) return false;
- }
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement