遍历数组和素数
遍历数组
搜索
在一组给定的数据中,如何找出某个数组是否存在?
通常都是使用for循环,让循环变量i从0到<数组的length,这样循环体内最大的i正好是数组 最大的有效下标
常见错误是:
循环结束条件是<=数组长度,或;
离开循环后,继续用i的值来做数组元素的下标!
for each
对于数组当中的每一个元素取出来作为一个类型的变量
素数
从2到x-1测试是否可以整除
对于n要循环n-1遍
当n很大时就可以被看作是n遍
去掉偶数后,从3到x-1,每次加2
如果x是偶数,立刻
否则要循环(n-3)/2+1遍
当n很大时就是n/2遍
无须到x-1,到sqrt(x)就够了
只需要循环sqrt(x)遍
从n —> n/2 —>sqrt(n)
判断是否能被已知的且<x的素数整除
构造前50个素数的表
构造素数表
欲构造n以内的素数表
1.令x为2
2.将 2x、3x、4x直至ax<n的数标记为非素数
3.令x为下一个没有被标记为非素数的数,重复2;直到所有的数都已经尝试完毕
欲构造n以内(不含)的素数表
1.创建prime为boolean[n],初始化其所有元素为true,prime[x]为true表示x是素数
2.令x=2
3.如果x是 素数,则对于(i=2;x*i<n;i++)令prime[i*x]=false
4.令x++,如果x<n,重复3,否则结束
算法不一定和人的思考方式相同