找到两个非负整数的最大公约数
unsigned int u, v, temp;
NSLog(@"please type in two nonnegative integers");
scanf("%u%u", &u, &v);
while (v != 0) {
temp = u % v;
u = v;
v = temp;
}
NSLog(@"Their greatest common divisor is %u", u);
颠倒显示数字的位数
int number, right_digit;
NSLog(@"Enter your number.");
scanf("%i", &number);
while (number != 0) {
right_digit = number % 10;
NSLog(@"%i", right_digit);
number /= 10;
}
快速寻得一区间内的所有质数
思路 :对最大值开方,若判断数不是从起始值到开方值中任何数的倍数,那么他就是质数。
int numberStart, numberEnd, minimumCommonDivisor;
BOOL isPrime;
NSMutableArray *primeArray = [[NSMutableArray alloc] init];
NSLog(@"please input range");
NSLog(@"pealse input startNumber");
scanf("%i", &numberStart);
NSLog(@"pealse input endNumber");
scanf("%i", &numberEnd);
minimumCommonDivisor = (int)sqrt(numberEnd) + 1;
for (int i = numberStart; i <= numberEnd; i++) {
isPrime = YES;
for (int j = 2; j < minimumCommonDivisor; j++) {
if ((i % j == 0 && i != j) || i == 1) {
isPrime = NO;
break;
}
}
if (isPrime) {
NSNumber *primeNumber = [NSNumber numberWithInt:i];
[primeArray addObject:primeNumber];
}
}
NSLog(@"%@", primeArray);