Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Collections.Specialized;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace ProgDemo01
- {
- class Program
- {
- static void Main(string[] args)
- {
- var primeNumberCounter1 = new PrimeNumberCounter(10000, 50000);
- primeNumberCounter1.StartCalculation += primeNumberCounter1_StartCalculation;
- primeNumberCounter1.FinishCalculation += primeNumberCounter1_FinishCalculation;
- primeNumberCounter1.RunCounter();
- }
- private static void primeNumberCounter1_FinishCalculation(PrimeNumberCounter pm, EventArgs args)
- {
- Console.WriteLine("Обчислення завершено");
- Console.WriteLine(pm.Counter);
- }
- private static void primeNumberCounter1_StartCalculation(PrimeNumberCounter pm, EventArgs args)
- {
- Console.WriteLine("Обчислення розпочато");
- }
- }
- //Обчислити кількість простих чисел від [A;B]
- public class PrimeNumberCounter
- {
- public delegate void CalculationHandler (PrimeNumberCounter pm, EventArgs args);
- public event CalculationHandler StartCalculation;
- public event CalculationHandler FinishCalculation;
- public int StartNumber { get; set; }
- public int FinishNumber { get; set; }
- public int Counter { get; set; }
- public PrimeNumberCounter()
- {
- StartNumber = 0;
- FinishNumber = 0;
- Counter = 0;
- }
- public PrimeNumberCounter(int start, int finish)
- {
- StartNumber = start;
- FinishNumber = finish;
- Counter = 0;
- }
- public void RunCounter()
- {
- // StartCalculation
- if (StartCalculation != null)
- {
- StartCalculation(this, new EventArgs());
- }
- for (int i = StartNumber; i < FinishNumber; i++)
- {
- if (isPrime(i)) Counter++;
- }
- // FinishCalculation
- if (FinishCalculation != null)
- {
- FinishCalculation(this, new EventArgs());
- }
- }
- private bool isPrime(int number)
- {
- for (int i = 2; i < number-1; i++)
- {
- if ((number % i) == 0) return false;
- }
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement