Я пытаюсь решить задачу 10 в Project Euler, и пока я думал, что у меня это есть, его ответ на мой вопрос неверен. Вопрос заключается в следующем:Project Euler # 10 in Objective C
сумма простых чисел ниже 10 составляет 2 + 3 + 5 + 7 = 17. Найти сумму всех простых чисел меньше двух миллионов.
И мой код:
int sum;
@interface Prime : NSObject
-(BOOL)isPrime:(int)arg1;
@end
@implementation Prime
-(BOOL)isPrime:(int)arg1 {
if (arg1 == 1) {
NSLog(@"Given 1");
return NO;
}
for (int i = 2; i < arg1; i++) {
if (arg1 % i == 0) {
return NO;
}
}
sum += arg1;
return YES;
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
Prime* primeObject = [[Prime alloc] init];
for (int i = 0; i < 2000000; i++) {
[primeObject isPrime:i];
}
NSLog(@"Sum of primes is %i", sum);
}
}
Этот код выводит «Сумма простых чисел 1179908154», который говорит, что проект Эйлера неверна. Помогите?
Попробуйте инициализации 'sum' 0. – rmaddy
Эффективность, вероятно, не в центре внимания, но' для (INT I = 2; i
Byte