质数算法Objective C请解释
Prime number algorithm Objective C explanation please
嗨,对不起,我的英语不好,我有一个问题,伙计们,我正在学习 objective c 并且我现在正在学习布尔值,我的问题是:为什么 运行 第二个循环在代码中,数字 2 被视为素数,我的意思是,正如我所见,p 在第一个循环中取值 2,然后 d 从 2 开始,但它说 d < p,我认为那是 p-1 (2 -1 = 1),所以该代码是如何工作的,没有意义,我理解为什么它适用于大于 2 的任何其他数字,但我不明白为什么它适用于数字 2!
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool
{
int p, d;
BOOL isPrime;
for (p = 2; p <= 50; p++)
{
isPrime = true;
for (d = 2; d < p; d++)
{
if (p % d == 0)
isPrime = false;
}
if (isPrime == true)
NSLog(@"%i", p);
}
}
return 0;
}
第一个循环开始p=2,然后内循环取d=2
然后检查是否d<p
。这个条件是 false 因为 d=2 P=2
。这意味着第一个内部循环不会 运行 并且 isPrime 在 p.
的第一个循环中总是 true
质数可以被 1 或它本身整除。
所以我们检查 1 和数字之间的所有数字的整除性。
这就是为什么我们从 2 开始,直到 1 号
for(d = 2; d < p; d++ )
Prime numbers are the numbers which are not divisible by any other number.They are divisible by itself only (eg 2,3,5,7)
如果我们只检查到一半的数字,因为超过一半的数字不会分割它。
-(BOOL)checkNumberPrimeNumber:(int)number{
int i; BOOL flag=false;
for (i=2; i<number/2; i++) {
if (number%i==0) {
flag=true;
break;
}
}
if (flag==true) {
NSLog(@"%d is Not Prime Number",number);
}
else{
NSLog(@"%d is Prime Number",number);
}
return YES;
}
嗨,对不起,我的英语不好,我有一个问题,伙计们,我正在学习 objective c 并且我现在正在学习布尔值,我的问题是:为什么 运行 第二个循环在代码中,数字 2 被视为素数,我的意思是,正如我所见,p 在第一个循环中取值 2,然后 d 从 2 开始,但它说 d < p,我认为那是 p-1 (2 -1 = 1),所以该代码是如何工作的,没有意义,我理解为什么它适用于大于 2 的任何其他数字,但我不明白为什么它适用于数字 2!
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool
{
int p, d;
BOOL isPrime;
for (p = 2; p <= 50; p++)
{
isPrime = true;
for (d = 2; d < p; d++)
{
if (p % d == 0)
isPrime = false;
}
if (isPrime == true)
NSLog(@"%i", p);
}
}
return 0;
}
第一个循环开始p=2,然后内循环取d=2
然后检查是否d<p
。这个条件是 false 因为 d=2 P=2
。这意味着第一个内部循环不会 运行 并且 isPrime 在 p.
质数可以被 1 或它本身整除。 所以我们检查 1 和数字之间的所有数字的整除性。
这就是为什么我们从 2 开始,直到 1 号
for(d = 2; d < p; d++ )
Prime numbers are the numbers which are not divisible by any other number.They are divisible by itself only (eg 2,3,5,7)
如果我们只检查到一半的数字,因为超过一半的数字不会分割它。
-(BOOL)checkNumberPrimeNumber:(int)number{
int i; BOOL flag=false;
for (i=2; i<number/2; i++) {
if (number%i==0) {
flag=true;
break;
}
}
if (flag==true) {
NSLog(@"%d is Not Prime Number",number);
}
else{
NSLog(@"%d is Prime Number",number);
}
return YES;
}