博客
关于我
Objective-C实现构造n以内的素数表(附完整源码)
阅读量:794 次
发布时间:2023-02-21

本文共 1103 字,大约阅读时间需要 3 分钟。

Objective-C 实现构造 n 以内的素数表

在 Objective-C 中,埃拉托斯特尼筛法(Sieve of Eratosthenes)是一种高效的算法,可用于生成 n 以内的素数表。这是一种经典的算法,用于找出所有小于或等于给定整数 n 的素数。

以下是一个完整的 Objective-C 示例,展示如何实现该算法并生成素数表。

#import

@interface PrimeGenerator : NSObject

  • (NSArray *)generatePrimesUpTo:(int)n;
  • (void)printPrimes:(NSArray *)primes;@end

@implementation PrimeGenerator

  • (NSArray *)generatePrimesUpTo:(int)n {// 初始化一个布尔数组,表示每个数是否为素数bool *isPrime = malloc(n + 1);for (int i = 0; i <= n; i++) {isPrime[i] = true;}isPrime[0] = false;isPrime[1] = false;

    // 从最小的素数 2 开始筛选for (int i = 2; i * i <= n; i++) {if (isPrime[i]) {for (int j = i * i; j <= n; j += i) {isPrime[j] = false;}}}

    // 收集所有标记为 true 的数NSMutableArray *primes = [NSMutableArray array];for (int i = 2; i <= n; i++) {if (isPrime[i]) {[primes addObject:(id)NSNumber numberWithInt(i)];}}

    free(isPrime);return [primes sortedArray];}

  • (void)printPrimes:(NSArray *)primes {for (NSNumber *num in primes) {NSLog(@"%d", num.intValue);}}

@end

该代码实现了埃拉托斯特尼筛法,通过以下步骤生成 n 以内的素数表:

  • 初始化一个布尔数组 isPrime,标记每个数是否为素数
  • 将所有数标记为素数,除了 0 和 1
  • 从最小的素数 2 开始,标记其倍数为非素数
  • 最终收集所有标记为素数的数,返回结果
  • 该算法的时间复杂度为 O(n log log n),适用于较大的 n 值

    转载地址:http://frifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现zellers congruence泽勒一致算法(附完整源码)
    查看>>
    Objective-C实现Zero One Knapsack零一背包计算算法(附完整源码)
    查看>>
    Objective-C实现一个Pangram字符串至少包含一次所有字母算法(附完整源码)
    查看>>
    Objective-C实现一个通用的堆算法(附完整源码)
    查看>>
    Objective-C实现一分钟倒计时(附完整源码)
    查看>>
    Objective-C实现三次样条曲线(附完整源码)
    查看>>
    Objective-C实现上传文件到FTP服务器(附完整源码)
    查看>>
    Objective-C实现两数之和问题(附完整源码)
    查看>>
    Objective-C实现中文模糊查询(附完整源码)
    查看>>
    Objective-C实现串口通讯(附完整源码)
    查看>>
    Objective-C实现串逐位和(附完整源码)
    查看>>
    Objective-C实现主存储器空间的分配和回收(附完整源码)
    查看>>
    Objective-C实现乘方运算---m的n次方(附完整源码)
    查看>>
    Objective-C实现二叉树遍历算法(附完整源码)
    查看>>
    Objective-C实现二进制和算法(附完整源码)
    查看>>
    Objective-C实现二进制补码算法(附完整源码)
    查看>>
    Objective-C实现互斥锁同步执行两个线程函数(附完整源码)
    查看>>
    Objective-C实现交易密码算法(附完整源码)
    查看>>
    Objective-C实现人工势场法(附完整源码)
    查看>>
    Objective-C实现代理服务器(附完整源码)
    查看>>