IsPrime.c,RUN
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
//质数/素数,除了1和本身,没有其它的因子
int IsPrime(int n)
{
if (n < 2) return 0;
//不需要遍历[2, n-1],只需要遍历[2, n/2],甚至[2, sqrt(n)]的情况
for (int i = 2; i <= sqrt(n); i++)
//for (int i = 2; i <= n / 2; i++)
{
if (n % i == 0)//n是否被i整除
return 0;//只要有一个约数,就不是质数。【反面结论,只要找到任意一个不成立的例子】
}
//所有整数都判断一遍,才能下正面的结论【正面结论,需要所有的情况都成立】
return 1;
}
int main()
{
for (int i = 2; i < 100; i++)
{
int result = IsPrime(i);
if (result)
printf("%d\n", i);
}
return 0;
}