五十二、基础框架(十)数组物件-生成 质数表
来源:互联网 发布:mac app store无法登录 编辑:程序博客网 时间:2024/05/21 17:54
下面这个程序 会生成 一个质数表。由于 我们 需要 不断 将 新的质数 添加 到数组物件当中,所以 我们 需要 使用 可修改的数组物件,也就是 NSMutableArray这类物件。虽然 质数 都 是 整数,但是 我们 无法 将 int类型的数值 直接 存储 到数组物件中。由于 数组物件 只能 存储 物件,所以 我们 必须 将 int类型的质数 先 转换成 NSNumber类型的物件,然后 才能 存储 在数组物件当中。
运行 上面的程序后,可以得到 这样的结果:
在上面的程序当中
这行语句 采取了 initWithCapacity:这项措施 并且 附带 参数25,创建了 一个初始容量为25的数组物件primes。随着 程序的执行,可修改数组物件的容量 会 根据需要 自动 增加。
接着 我 将 数组物件primes中开头两个元素 分别 设定为 2 和 3,就像 这样:
addObject:这项措施 可以将 一个物件 添加 到数组物件的结尾处。addObject:这项措施的实施对象 是 数组物件,它的参数 是 你希望添加到数组物件中的物件。
接着 程序 进入 一个for()循环。这个for() 开始寻找 从5 到MAXPRIME这个范围内的质数。循环表达式
表明 在寻找质数的过程中 要跳过 所有的偶数,因为 偶数 不可能 是 质数。对于 每个潜在的质数p,我们 需要检查 它 能不能 被 它之前的所有质数,也就是 变量previousPrime的值,整除。如果 潜在的质数p 不能够 被 它之前的所有质数 整除,那么 它 就是 质数。为了 性能优化,你 只需要 检查 潜在的质数p 是否能被 其平方根前面的所有质数 整除 就可以了。这 是 因为 如果 一个整数 不是 质数,那么 它 必然 能 被 小于或等于它平方根的质数 整数,相反,那 肯定 是 质数。所以 只要 之前的质数previousPrime 小于 或者 等于 当前的潜在质数p,那么 表达式
就 一定 成立。
如果 变量isPrime的值 最后 还是 YES,那么 do{}while()循环 就会中止,表明 你 已经 找到了 一个新的质数。接着 当前的潜在质数p 就会 被转换成 NSNumber类型的物件,并且 添加 到数组物件primes当中。接着,程序 继续执行。
- 五十二、基础框架(十)数组物件-生成 质数表
- 五十一、基础框架(九)数组物件
- 六十二、基础框架(二十)集合物件
- 六十一、基础框架(十九)辞典物件-对 辞典物件 进行快速枚举
- 八十三、基础框架(四十一)复制 物件-实施 协议
- 四十四、基础框架(二)数字物件
- 四十六、基础框架(四)字符串物件
- 六十、基础框架(十八)辞典物件
- 八十、基础框架(三十八)复制 物件
- 八十四、基础框架(四十二)复制 物件-在n 和 setN:这两项措施当中 复制 物件
- 六十三、基础框架(二十一)文件操作-NSFileManager这类物件
- 六十五、基础框架(二十三)文件操作-数据物件
- 七十一、基础框架(二十九)文件操作-文件操作柄,NSFileHandle这类物件
- 七十二、基础框架(三十)文件操作-文件操作柄,NSFileHandle这类物件2
- 七十五、基础框架(三十三)内存管理-引用计数 与 字符串物件
- 八十一、基础框架(三十九)复制 物件-copy 和 mutableCopy这两项措施
- 八十二、基础框架(四十)复制 物件-浅层复制 VS 深层复制
- 八十六、基础框架(四十四)归档-用 NSKeyedArchiver这类物件 归档
- 【打表】数页码
- 五十、基础框架(八)所有的物件 都 去 哪里了?
- OpenStack之Swift:环(Ring)工具解析
- 五十一、基础框架(九)数组物件
- 【动态规划\五进制运算】单人纸牌
- 五十二、基础框架(十)数组物件-生成 质数表
- C02-程序设计基础提高班(C++)第10周上机任务-类和对象之二
- My_Neighbors_the_Yamadas 我的邻居山田君
- 灯红酒绿的伤感空间日志:也许,我们都不是真正的快乐
- 作为一名程序员你平时的生活是这样吗?
- 五十三、基础框架(十一)创建 地址簿-1
- 卑微你存活太久了:伤感日志
- RMAN 备份详解
- hash and frame (draft)