c# - Program Hangs while executing -


i having problem program executes , hangs somewhere during execution. want know causes this.

for (long = maxnumber; > 2; i--) {     isprime = true;     (long g = 2; g < i; g++)     {         long temp = % g;         if (temp == 0)         {             isprime = false;                                         break;         }     }     if (isprime == true)     {         largestprimefactor = i;                                 break;     } } 

if tried correctly, code trying find largest prime between 0 , maxnumber. use sieve of eratosthenes finding prime numbers between 0 , square root of maxnumber. then, can iterate maxnumber 0 number indivisible of prime numbers you've found.

edit : tried this

            var sqrtmax = (int)math.sqrt(maxnumber);             var primecandidates = enumerable.range(2, sqrtmax-1)              .todictionary(number => number, iscomposite => false);              foreach (var number in primecandidates.keys.toarray())             {                 if (primecandidates[number])                 {                     continue;                 }                 parallel.foreach(enumerable.range(2, sqrtmax / number - 1).select(times => number * times),multiples=>                     primecandidates[multiples] = true);             }             var primelist = primecandidates.where(number => !number.value).select(pair=>pair.key).toarray();             var maxprime = maxnumber;               while (primelist.asparallel().any(prime=> maxprime%prime==0))             {                 maxprime--;             } 

and find maxprime in less 3 seconds maxnumber = 600881475134 (the parallelization because thought take long time)


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -