用函数判断一个数x是否为素数
素数是只能被1和本身整除的数,所以可以用循环从2开始模等到x减一,如果模等一个数为0的话就等于可以整除那个数,则不是素数。
但是,这样循环下来会有很多的没必要,判断一个数是否为素数只用循环到根号下x即可,这样的循环效率更高一些
int MyPrime(int _x) //定义一个函数
{
int i = 0;
int m = (int)sqrt(_x); //m就是开根后的值
for (i = 2; i <= m; i++) //for循环
{
if (_x%i == 0) //如果可以整除则不是素数
{
return 0;
}
}
return 1;
}
int main()
{
printf("请输入要判断的数:");
int x = 0;
scanf("%d", &x);
if (MyPrime(x) == 1) //返回1为素数
{
printf("是素数\n");
}
else //返回0则不是素数
{
printf("不是素数\n");
}
return 0;
}
也可以利用上一个函数判断1到100之间的所有素数
int MyPrime(int _x) //定义一个函数
{
int i = 0;
int m = (int)sqrt(_x); //m就是开根后的值
for (i = 2; i <= m; i++) //for循环
{
if (_x%i == 0) //如果可以整除则不是素数
{
return 0;
}
}
return 1;
}
int main()
{
printf("请输入要判断的区间:");
int x = 0;
int y = 0;
scanf("%d %d", &x, &y);
for (; x <= y; x++)
{
if (MyPrime(x) == 1) //如果是素数则打印
{
printf("%d\n",x);
}
}
return 0;
}