要求:选出给定数字范围内所有素数 / 判断给定数字是否为素数
选素数实现思路:试除法,将要求数字从1开始除到它本身,若有除1与其本身以外的数可%0的,则非素数,再用循环将1到给定数字历遍。
判断素数思路:同选素数一样。
算法优化:若除到本身则循环次数过多,实际上到所判断数的平方根即可,用sqrt函数
int main()
{
int a = 0;
int c = 0;
int b = 0;
scanf("%d", &c);
for (a = 0; a <= c; a++)
{
for (b = 2; b < a; b++)
{
if (a %b==0)
break;
}
if (a ==b)
printf("%d\n", b);
}
return 0;
}
判断是否为素数
int main()
{
int i = 0;
int j = 2;
scanf("%d", &i);
int c = sqrt(i);
{
for (j = 2; j <=c; j++)
int p;
p = i % j;
if (p == 0)
printf("i不是素数");
else
printf("i是素数");
break;
}
return 0;
}