
Objective-C实现埃拉托斯特尼筛法算法(附完整源码)
发布日期:2025-04-25 16:39:42
浏览次数:3
分类:精选文章
本文共 884 字,大约阅读时间需要 2 分钟。
埃拉托斯特尼筛法是一种高效的算法,用于寻找小于某个数的所有素数。下面是用Objective-C实现埃拉托斯特尼筛法的完整代码,以及对实现过程的详细解释。
Objective-C实现埃拉托斯特尼筛法代码
#import@interface PrimeSieve : NSObject- (NSArray *) sieveForNumber:(int)max;@end
代码解释
类定义:PrimeSieve
类继承自 NSObject
,用于实现埃拉托斯特尼筛法算法。
主要方法:sieveForNumber:(int)max
方法用于生成小于或等于 max
的所有素数。
算法步骤:
- 创建一个布尔数组
sieve
,初始值为true
,表示所有数最初都被认为是素数。 - 将
2
到max
的所有数标记为true
,表示这些数最初被认为是素数。 - 从
2
开始遍历,直到sqrt(max)
。对于每个数i
,如果它是素数,则标记其倍数为false
,表示这些倍数不是素数。 - 最后,收集所有标记为
true
的数,即为小于或等于max
的所有素数。
实现代码
#import@interface PrimeSieve : NSObject- (NSArray *) sieveForNumber:(int)max;@end
使用示例
PrimeSieve *primeSieve = [[PrimeSieve alloc] init];NSArray*primes = [primeSieve sieveForNumber:10];NSLog(@"Primes up to 10: %@", primes);
输出结果
Primes up to 10: [2, 3, 5, 7]
总结
埃拉托斯特尼筛法是一种经典的算法,通过筛选非素数来找出所有素数。Objective-C 实现这一算法的代码如上所示,能够有效地寻找小于或等于给定数的所有素数。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月09日 07时24分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!