解题思路:由于素数是指在大于1的自然数中,除了1和它本身以外不再有其它因数的自然数,所以我们要让每一个范围内的数都要判断一下是不是素数,让这个数与除了1且比它小的数求余,若遇到求余之后等于0,就跳出for循环,再判断使它等于0的数是不是它本身,如果是他本身的话,那么这个数就是素数,否则就不是。

注意事项:了解素数的概念。

参考代码:

#include<stdio.h>

void fun(int x,int y){

    int add=0;

    int i,j;

    for(i=x;i<=y;i++){

        for(j=2;j<=i;j++){//从2开始判断这个数值内的所有数求余之后,等于0就跳出

            if(i%j==0)

            break;

        }

        if(i==j)//如果求余之后的数(除了1)是他本身,那么这个数就是素数

         add++;

    }

    printf("%d",add);

}

int main()

{

int X,Y;

scanf("%d %d",&X,&Y);

fun(X,Y);

return 0;

}


点赞(0)
 

0.0分

4 人评分

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

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

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

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

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

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

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

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

评论列表 共有 1 条评论

考研必胜 6月前 回复TA
#include<stdio.h>
void fun(int x, int y)
{
	int i,b;
	int w = 0;
	for (i = x; x <= y; i++)
	{
		for (b = 2; b <= i; b++)
		{
			if (i % b == 0)
				break;
		}
			if (i == b)
			{
				w = w + 1;
			}
	}
	printf("%d", w);
}
int main()
{
	int x;
	int y;
	scanf("%d %d", &x,&y);
	fun(x, y);
	return 0;
}
有没有大佬帮忙看一下,为什么显示内存超了呢?求解释