本文共 878 字,大约阅读时间需要 2 分钟。
埃拉托斯特尼筛法是一种高效的算法,用于寻找小于某个数的所有素数。下面是用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 实现这一算法的代码如上所示,能够有效地寻找小于或等于给定数的所有素数。
转载地址:http://zvifk.baihongyu.com/