相关疑难解决方法(0)

是否有一个工具/解决方案来编程一个循环,其中只在每次X迭代检查条件?

例如:我有一个由while循环组成的函数(这个函数会检查质数)

function isprime(int number){
int i=2;
int max= (int) sqrt(number)+1;
   while(i<max){
       if(number%i==0){
          return 0;
       }
       i++;
   }
return 1;
}
Run Code Online (Sandbox Code Playgroud)

我知道这将是一个非常差的测试质数的算法,但我的问题更多地集中在循环上.目前,该函数的第四个操作是"只是"检查条件.对于更大的数字,这可能是非常多的.

(快速示例1:如果"number"是1009,那将检查while条件30次,索引30次操作,if条件检查29*2次.这是118次操作)

我意识到我可以在while条件下剪切和粘贴并使索引通过最大值,同时导致额外的操作,不会伪造返回值.所以,如果我切断从"if ..."到"i ++"的所有内容 并粘贴三(或n)次,检查while条件只占用操作的1/10(或1 /(1 + 3n),同时创建最大+ 2*3(或+(n-1) )*3)不必要的操作.

(快速示例2:如果"number"为1009,则表示检查while条件11次,索引运算33次,if条件运行33*2次.这是100次操作,少了13次)

因为我正在尝试非常大的数字(用非专业术语来说:"条件将在非常非常非常长的时间内是假的")所以将if条件和增量粘贴数千次是有用的,但是非常不切实际 - 所以我的问题是:

是否有一个工具(或我缺少的技术)为我做这个,但保持代码清晰,易于修改?

提前致谢!

c c++ optimization loops

1
推荐指数
1
解决办法
146
查看次数

标签 统计

c ×1

c++ ×1

loops ×1

optimization ×1