SHARE
TWEET

Untitled

a guest Jul 17th, 2017 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Concurrent;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using System.Linq;
  8.  
  9. namespace calc
  10. {
  11.     class Program
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             Console.WriteLine("Calculando primos...");
  16.  
  17.             // long start = 10000000;
  18.             // long end = 50000000;
  19.  
  20.             long start = 10000;
  21.             long end = 150000;
  22.  
  23.             var timer = Stopwatch.StartNew();
  24.  
  25.             var primos = new ConcurrentBag<long>();
  26.  
  27.             while(true)
  28.             {
  29.                 Parallel.For(start, end, i => {
  30.                     var times = 0;
  31.                     for(var j = i; j >= 1; j--)
  32.                     {
  33.                         var mod = i % j;
  34.                         if(mod == 0)
  35.                         {
  36.                             times++;
  37.                         }
  38.                     }
  39.  
  40.                     if(times == 2)
  41.                     {
  42.                         primos.Add(i);
  43.                     }
  44.                 });
  45.  
  46.                 timer.Stop();
  47.                 System.Console.WriteLine("{1} - Total de primos: {0} em {2} entre {3} e {4}.", primos.Count, DateTime.Now, timer.Elapsed, start, end);
  48.                 primos = new ConcurrentBag<long>();
  49.                 timer.Restart();
  50.             }
  51.            
  52.             // Parallel.For(start, end, i => {
  53.             //     var times = 0;
  54.             //     for(var j = i; j >= 1; j--)
  55.             //     {
  56.             //         var mod = i % j;
  57.             //         if(mod == 0)
  58.             //         {
  59.             //             times++;
  60.             //         }
  61.             //     }
  62.  
  63.             //     if(times == 2)
  64.             //     {
  65.             //         // System.Console.WriteLine(i);
  66.             //         primos.Add(i);
  67.             //     }
  68.  
  69.             //     if (timer.Elapsed.TotalMinutes >= 1)
  70.             //     {
  71.             //         timer.Stop();
  72.             //         var s = primos.ToList();
  73.             //         foreach(var primo in s.OrderBy(x => x))
  74.             //         {
  75.             //             System.Console.WriteLine(primo);
  76.             //         }
  77.             //         System.Console.WriteLine("Total de primos: {0} - {1}", primos.Count, DateTime.Now);
  78.             //         primos = new ConcurrentBag<long>();
  79.             //         timer.Restart();
  80.             //     }
  81.             // });
  82.  
  83.             // for (var i = start; i < end; i++)
  84.             // {
  85.             //     var times = 0;
  86.             //     for(var j = i; j >= 1; j--)
  87.             //     {
  88.             //         var mod = i % j;
  89.             //         if(mod == 0)
  90.             //         {
  91.             //             times++;
  92.             //         }
  93.             //     }
  94.  
  95.             //     if(times == 2)
  96.             //     {
  97.             //         // System.Console.WriteLine(i);
  98.             //         primos.Add(i);
  99.             //     }
  100.  
  101.             //     if (timer.Elapsed.TotalMinutes >= 1)
  102.             //     {
  103.             //         timer.Stop();
  104.             //         foreach(var primo in primos)
  105.             //         {
  106.             //             System.Console.WriteLine(primo);
  107.             //         }
  108.             //         System.Console.WriteLine("Total de primos: {0}", primos.Count);
  109.             //         primos.Clear();
  110.             //         timer.Restart();
  111.             //     }
  112.             // }
  113.  
  114.         }
  115.     }
  116. }
RAW Paste Data
Top