这个程序告诉给定的输入是否是质数,但我不明白 for 循环在这里做什么?它没有括号,也没有语句。
int main(void)
{
int n;
printf("Enter an integer number (> 1): ");
if (scanf("%d", &n) != 1 || n <= 1) {
printf("Invalid input. Quit!\n");
return -1;
}
int d;
for (d = 2; n % d != 0; d++)
;
if (d == n)
printf("%d is prime\n", n);
else
printf("%d divides into %d\n", d, n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它不需要主体,目的只是增加d直到条件n % d != 0为假(即何时n % d == 0为真)。d在这个过程中它没有做任何事情。
在循环结束时,d将是 的最低因子n。如果d == n这意味着n除了自身和 1(未检查,因为循环从 开始d = 2)之外没有任何其他因素,即它是素数。