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.
使用合理的算法将代码替换为代码,例如Eratosthenes的Sieve.最重要的"优化"是首先选择正确的算法.
如果您对数字进行排序的算法是随机交换它们直到它们按顺序排列,那么优化选择随机条目,交换它们或检查它们是否有序无关紧要.一个糟糕的算法将意味着糟糕的表现.