五十二、基础框架(十)数组物件-生成 质数表

下面这个程序  会生成  一个质数表。由于  我们  需要  不断  将  新的质数  添加  到数组物件当中,所以  我们  需要  使用  可修改的数组物件,也就是  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当中。接着,程序  继续执行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值