#include <stdio.h>
#include <stdbool.h>
int main(int argc, char const *argv[])
{
unsigned long num;
unsigned long div;
bool isPrime;
while (scanf("%lu", &num) == 1)//从终端输入一个数,为无符号双精度。成功输入scanf返回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);
}
return 0;
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/3ac79f3df8dcd100037430967f8b4710b8122f99?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)