先来看一下题目:
题目链接:
AC代码:
#include <stdio.h>
void swap(int *a, int *b) //x,y交换顺序
{
int t;
t = *a;
*a = *b;
*b = t;
}
int isprime(int n) //判断n是否为素
{
int i;
for(i=3; i*i<=n; i+=2)
{
if(n % i == 0)
{
return 0; //不是素数返回0
}
}
return 1; //是素数返回1
}
int main(void)
{
int x, y, sum=0, i;
scanf("%d%d", &x, &y);
if(x > y) //如果x>y则交换x,y位置
{
swap(&x, &y);
}
if(x <= 2)
{
x = 3;
sum = 1;
}
else
{
if(x % 2 == 0)
{
x++;
}
sum = 0;
}
for(i=x; i<=y; i+=2)
{
if(isprime(i))
{
sum++;
}
}
printf("%d\n", sum);
return 0;
}