Sha256: 8b8379e31a0852d10013a3aeb9b7146c507a9ca7032f46d14fb7685047e57cfa

Contents?: true

Size: 825 Bytes

Versions: 249

Compression:

Stored size: 825 Bytes

Contents

#import "SieveExample.h"

@implementation Sieve

+ (NSArray<NSNumber *> *)primesUpTo:(int)limit {
    if (limit < 2) {
        return @[];
    }
    
    NSMutableArray<NSNumber *> *numbers = [[NSMutableArray alloc] init];
    
    for (int i = 2; i <= limit; i++) {
        [numbers addObject:@(i)];
    }
    
    NSMutableArray<NSNumber *> *primes = [[NSMutableArray alloc] init];
    
    while (numbers.count > 0) {
        NSNumber *target = [numbers objectAtIndex:0];
        [numbers removeObjectAtIndex:0];
        [primes addObject:target];
        NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSNumber *number, NSDictionary *bindings) {
            return number.intValue % target.intValue != 0;
        }];
        [numbers filterUsingPredicate:predicate];
    }
    
    return primes;
}

@end

Version data entries

249 entries across 249 versions & 1 rubygems

Version Path
trackler-2.2.1.38 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.37 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.36 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.35 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.34 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.33 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.32 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.31 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.30 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.29 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.28 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.27 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.26 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.25 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.24 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.23 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.22 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.21 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.20 tracks/objective-c/exercises/sieve/SieveExample.m
trackler-2.2.1.19 tracks/objective-c/exercises/sieve/SieveExample.m