优化嵌套循环

JTN*_*JTN 0 c++ primes

for( a=1; a <= 25; a++){
  num1 = m[a];
  for( b=1; b <= 25; b++){
    num2 = m[b];
    for( c=1; c <= 25; c++){
      num3 = m[c];
      for( d=1; d <= 25; d++){
        num4 = m[d];
        for( e=1; e <= 25; e++){
          num5 = m[e];
          for( f=1; f <= 25; f++){
            num6 = m[f];
            for( g=1; g <= 25; g++){
              num7 = m[g];
              for( h=1; h <= 25; h++){
                num8 = m[h];
                for( i=1; i <= 25; i++){
                  num = num1*100000000 + num2*10000000 +
                        num3*  1000000 + num4*  100000 +
                        num5*    10000 + num6*    1000 +
                        num7*      100 + num8*      10 + m[i];
                  check_prime = 1;

                  for ( y=2; y <= num/2; y++)
                  {
                    if ( num % y == 0 )
                      check_prime = 0;
                  }

                  if ( check_prime != 0 )
                  {  
                    array[x++] = num;  
                  }
                  num = 0;  
                }}}}}}}}}
Run Code Online (Sandbox Code Playgroud)

上面的代码花了很多时间来完成执行..实际上它甚至没有完成执行,我该怎么做才能优化循环并加快执行速度?我是新手cpp.

Dav*_*rtz 6

使用合理的算法将代码替换为代码,例如EratosthenesSieve.最重要的"优化"是首先选择正确的算法.

如果您对数字进行排序的算法是随机交换它们直到它们按顺序排列,那么优化选择随机条目,交换它们或检查它们是否有序无关紧要.一个糟糕的算法将意味着糟糕的表现.