问题:输入两个整数X和Y,输出两者之间的素数个数(包括X和Y),我来为大家讲解一下关于c语言怎么判断素数个数?跟着小编一起来看一看吧!
c语言怎么判断素数个数
问题:输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入:两个整数X和Y(1 <= X,Y <= 10 5)。
输出:输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
程序:
#include <stdio.h>
void swap(int *a, int *b);//用指针将两个变量的大小交换。
int isprime(int n); //将判断是否为素数打包为函数可以使主函数更容易读。
int main()
{
int x, y, sum=0, i;
scanf("%d %d", &x, &y);
if(x > y)
swap(&x, &y); //使x<y。
if(x <= 2) {
x = 3;
sum = 1;
} else {
if(x % 2 == 0)
x ;
} // 将特殊情况排除,提高了程序运行的速度。
for(i=x; i<=y; i =2)
if(isprime(i))
sum ;
printf("%d\n", sum);
return 0;
}
void swap(int *a, int *b)
{
int t;
t = *a;
*a = *b;
*b = t;
}
int isprime(int n)
{
int i;
for(i=3; i*i<=n; i =2)
if(n % i == 0)
return 0;
return 1;
}
,