int main()
{
int n;
int count = 0;
printf("请输入一个整数:\n");
scanf("%d", &n);
for (int i = 2; i < n; i++)//因为1和它本身可以除尽,所以从2开始
{
if (n % i == 0)
{
count++;
}
}
if (count == 0)
{
printf("该数是素数:%d\n", n);
}
if (count != 0)
{
printf("该数不是素数:%d\n", n);
}
}
优化代码(面试常用):假如n不是素数,则存在n=a*b,设a<=b;
n=n^1/2*n^1/2,则a<=n^1/2
时间复杂度0(n^1/2)
int main()
{
int n;
int count = 0;
printf("请输入一个整数:\n");
scanf("%d", &n);
for (int i = 2; i <sqrt(n); i++)//因为1和它本身可以除尽,所以从2开始
{
if (n % i == 0)
{
count++;
}
}
if (count == 0)
{
printf("该数是素数:%d\n", n);
}
if (count != 0)
{
printf("该数不是素数:%d\n", n);
}
}