//divisors.c--使用嵌套if语句显示一个数的约数
#include<stdio.h>
#include<stdbool.h>
int main()
{
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");
getchar();
getchar();
return 0;
}
最厉害的就是那个if(isPrime)了,可根据循环的结果判断进不进入if语句