关于C primer Plus 第七章一个例题
该例题是给定一个整数,显示所有能整除它的约数。具体代码如下:
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
unsigned long num;
unsigned long div;
bool isPrime;
printf("Please enter an integer for analysis; ");
printf("Enter q to quit.\n");
while (scanf("%lu", &num) == 1)
{
for (div = 2, isPrime = true; (div*div) <= num; div++)
{
if (num % div == 0)
{
if ((div*div) != num)
printf("%lu is divisible by %lu and %lu.\n", num, div, num / div);
else
printf("%lu is divisible by %lu.\n", num, div);
isPrime = false;
}
}
if (isPrime)
printf("%lu is prime.\n", num);
printf("Please enter another integer for analysis; ");
printf("Enter q to quit.\n");
}
printf("Bye.\n");
return 0;
}
整段代码,主要对于标红部分不太理解:
1、书上说用isPrime 进行标记,给isPrime 初始设置为true ,循环结束时再设置为false,如何理解?,
2、书上说一旦输入的数为素数时,程序不会进入if语句,为何不会进入if语句?