本文共 1001 字,大约阅读时间需要 3 分钟。
埃拉托斯特尼筛法(Sieve of Eratosthenes)是一种高效的算法,用于寻找素数。以下是用Objective-C实现该算法的完整代码和解释。
#import@interface SieveOfEratosthenes : NSObject- (NSArray *)generatePrimeNumbersUpTo:(NSNumber *)number;- (NSArray *)generatePrimesUpTo:(int)number;@end
埃拉托斯特尼筛法的核心思想是通过排除非素数,逐步筛选出所有素数。具体步骤如下:
isPrime,初始值为true,表示所有数字最初都被认为是素数。i,如果i未被标记为非素数,则i是素数。i,从i*i开始,每隔i个数标记一次为非素数。isPrime数组,收集所有标记为true的数字。generatePrimeNumbersUpTo方法:接收一个NSNumber参数,表示要查找的最大值。返回一个包含所有小于等于该值的素数的数组。generatePrimesUpTo方法:接收一个整数参数,返回所有小于等于该整数的素数数组。SieveOfEratosthenes *sieve = [[SieveOfEratosthenes alloc] init];NSArray*primes = [sieve generatePrimeNumbersUpTo:100];// `primes` 将包含所有小于等于100的素数,如:2, 3, 5, 7, 11, ...
isPrime数组中的值。通过以上实现,您可以轻松使用埃拉托斯特尼筛法在Objective-C中查找素数。
转载地址:http://bwifk.baihongyu.com/