题目要求:打印100~200 之间的素数
先解释一下什么是素数?
素数:素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
知道了定义,我们再来写这个代码就很简单了,看代码:
int main()
{
int i = 100;
for (; i < 201; ++i)
{
if (1 == i % 2)
{
printf("%d ", i);
}
}
printf("\n");
getchar();
return 0;
}
很多人应该都是跟我一样,一看到这个题就歘歘歘写了上面代码,看似没毛病,实则存在漏洞!
仔细思考,如果求1~10之间的素数呢?这个代码还正不正确了?
读者可以上机试验下,下面给出正确代码:
int Prime()
{
int i = 0;
printf("请输入你要判断数:");
scanf_s("%d", &i);
if (1 == i)
return 1;
for (int j = 2; j < sqrt(i); ++j)
{
if (i%j != 0)
{
return 1;
}
}
return -1;
}