给定两个非负整数a,b,其中0<= a,b<=1,000,000,请计算这两个数之间有多少个素数。

输入

第一行是一个整数K(1<=K<=1000),表示有多少个样例,每个样例占一行,是两个整数a和b,每个整数之间用一个空格隔开。

输出

每行输出一个样例的结果。

   

Sample Input

   

2 2 3 17 19
   

Sample Output

   

2 2
   

代码:

#include<stdio.h>



int isprime(int n)

{   int i,result;

    int a=0;



    for(i=2;i<n;i++)

        if(n % i == 0)

        {

            a+=1;

        }

    if(a==0)

        result=1;

        else

            result=0;

    return result;

}







int main(){

int k,a,b,i;

scanf("%d",&k);

while(k--){

scanf("%d %d",&a,&b);


int count=0;

for(i=a;i<=b;i++){



       count+=isprime(i);





}



printf("%d\n",count);




}


return 0;




}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

15宋一鑫 7年前 回复TA
缩小一下枚举的范围
验题君 7年前 回复TA
这个算法比较笨,数据大的时候就太慢了,想其他的算法