SHARE
TWEET

Untitled

a guest Jun 19th, 2017 49 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections;
  3.  
  4. namespace Soe
  5. {
  6.     public class ListValue
  7.     {
  8.         private int value;
  9.         private bool marked;
  10.  
  11.         public ListValue()
  12.         {
  13.             this.value = 0;
  14.             this.marked = false;
  15.         }
  16.  
  17.         public ListValue(int value, bool marked)
  18.         {
  19.             this.value = value;
  20.             this.marked = marked;
  21.         }
  22.  
  23.         public int Value
  24.         {
  25.             get { return this.value; }
  26.             set {
  27.                 this.value = value;
  28.             }
  29.         }
  30.  
  31.         public bool Marked
  32.         {
  33.             get { return this.marked; }
  34.             set {
  35.                 this.marked = value;
  36.             }
  37.         }
  38.  
  39.         public string ToString()
  40.         {
  41.             return this.value + " " + this.marked;
  42.         }  
  43.  
  44.     }
  45.  
  46.  
  47.     public class Algorithm
  48.     {
  49.  
  50.         private int lBound;
  51.         private int uBound;
  52.  
  53.         public Algorithm(int lBound, int uBound)
  54.         {
  55.             this.lBound = lBound;
  56.             this.uBound = uBound;
  57.  
  58.         }      
  59.  
  60.         public List<ListValue> Eratosthenes()
  61.         {
  62.  
  63.             List<ListValue> values = new List<ListValue>();
  64.  
  65.             if(this.IsPrim(this.lBound)
  66.             {
  67.                 for(int i = this.lBound; i < this.uBound; i++)
  68.                 {
  69.                     this.values.add(new ListValue(value: i, marked: false)
  70.                 }
  71.  
  72.  
  73.                 for(int i = 0; i < this.values.Count; i++)
  74.                 {
  75.                     int start = values[i].Value * values[i].Value;
  76.  
  77.                     if(start <= this.uBound && values[i].Marked == false)
  78.                     {
  79.                         for(int j = start; j <= this.uBound; j+=values[i].Value)
  80.                         {
  81.                             values[j].Marked = true;
  82.                         }
  83.                     }
  84.                 }
  85.  
  86.             }
  87.  
  88.             for(int i = 0; i < values.Count; i++)
  89.             {
  90.                 if(values[i].Marked == false)
  91.                 {
  92.                     values.RemoveAt(i);
  93.                 }
  94.             }
  95.  
  96.  
  97.             return values;                                 
  98.         }
  99.  
  100.         public List<int> SimplePrimeTest()
  101.         {
  102.             List<int> values = new List<int>();
  103.  
  104.             for(int i = this.lBound; i <= this.uBound; i++)
  105.             {
  106.                 if(this.IsPrim(i))
  107.                     values.add(i);
  108.             }              
  109.  
  110.             return values;         
  111.  
  112.         }
  113.  
  114.         private bool IsPrim(int value)
  115.         {
  116.  
  117.             bool result = false;           
  118.        
  119.             if(value <= 1)
  120.             {
  121.                 return false;
  122.             }else{
  123.                 for(int i = 2; i <= Math.Round(Math.Sqrt(value), 0); i++)
  124.                 {
  125.                     if((value % i) == 0)
  126.                         result = false;
  127.                     else if((value % i) > 0)
  128.                         result = true;
  129.                 }
  130.             }
  131.  
  132.             return result;
  133.                
  134.         }      
  135.  
  136.     }
  137.  
  138.     public class Program
  139.     {
  140.         public static void Main()
  141.         {
  142.             Algorithm al = new Algorithm(lbound: 2, ubound: 100);
  143.  
  144.             foreach(ListValue lv in al.Eratosthenes())
  145.             {
  146.                 Console.Out.WriteLine(lv);
  147.             }
  148.         }
  149.     {
  150.  
  151. }
RAW Paste Data
Top