这是一个C函数程序。它从用户那里获取输入,然后用 if
条件和用途 break
声明。
#include<stdio.h>
#include<conio.h>
int main()
{
int i, Number, count = 0;
printf("\n Please Enter any number to Check for Prime \n");
scanf("%d", &Number);
for (i = 2; i <= Number/2; i++) {
if(Number == 0) {
count++;
break;
}
}
if(count == 0 && Number != 1 ) {
printf("\n %d is a Prime Number", Number);
} else {
printf("\n %d is Not a Prime Number", Number);
}
getch();
return 0;
}
我不明白这个程序是如何工作的,谁能给我解释一下这部分的工作原理?
for (i = 2; i <= Number/2; i++) {
if(Number == 0) {
count++;
break;
}
}
让我们一行一行的来。
for (i = 2; i <= Number/2; i++)
开始一个 for
循环,并迭代,直到我们达到 Number / 2
. 所以如果 Number = 12
, i
将会递增,直到它等于该值的一半,在这种情况下 6
.
if(Number == 0) {
count++;
break;
}
如果 Number
为零,递增(加1) count
变量并停止循环。因为你是在检查质数,所以这一行是不正确的。应该是 if (Number % i == 0)
代替。%
是模数运算符,它将给出除法的余数。例如 12 % 6
是 0,因为没有余数。所以。count
是递增的,如果有一个数字可以除以 Number
余下的是 0
意思是 Number
不是质数。
if(count == 0 && Number != 1 )
这里,我们检查 count
是 0
AND Number
不是1。如果这两个条件都是真的,那么我们就找到了一个质数。