#include<stdio.h>
int isprime(int x)
{
    int i;
     if(x<2) return 0;
     for(i=2;i<x;i++) if(x%i==0) return 0;
     return 1;
}
int main(void)
{
    int m,n,i,sum=0;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
        if(isprime(i))
        sum+=i;
    }
    printf("%d",sum);
    return 0;
}

解题思路:





注意事项:





参考代码:

点赞(11)
 

0.0分

6 人评分

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

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

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

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

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

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

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

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

评论列表 共有 24 条评论

c晨光 6年前 回复TA
@c晨光 大神,以后多多指导,我才是新手
海洋之心 6年前 回复TA
@c晨光 好的好的,谢谢你啦
海洋之心 6年前 回复TA
@c晨光 对的,当时写的时候没有考虑周全,现在回头看,确实是这样的
c晨光 6年前 回复TA
对不起,才看到m小于n,,,不过效率真的真的有问题
c晨光 6年前 回复TA
还有你的输入的m,n,你知道哪个大吗,我觉得应该先判断大小
c晨光 6年前 回复TA
效率不高,判断素数就是指需要循环到根号x就行了,注意要带等号,小于根号x的时候就不是素数了,大于根号x的时候还可能是吗,x的两个因子,肯定是一个大于等于根号x,一个小于等于根号x
c晨光 6年前 回复TA
@nicholasal 定义的函数在主函数下面是要在前面声明定义的函数的,如果把自己定义的函数放在主函数的上面,就不用声明,你直接把自己定义的那一部分函数,所有的都移到main函数的上面就可以了
zxzd 6年前 回复TA
@小玉 if(isprime(i)) s+=i;改为:if(isprime(i)==1)s+=i;
小玉 6年前 回复TA
#include<stdio.h>
int  isprime(int x)
{
	if(x<2)return 0;
	int i;
	for(i=2;i<x;i+=2)
		if(x%i==0)
		return 0;
	return 1;
}
int main()
{
	int m,n;
	scanf("%d%d",&m,&n);
	int i,s=0;
	for(i=m;i<=n;i++)
	{
		if(isprime(i))
		s+=i;
	}
	printf("%d",s);
	return 0;
}
有人能看看我这个哪错了
nicholasal 6年前 回复TA
#include<stdio.h>
#include<stdlib.h>
int main()
  
{
    int isprime(int a,int b);
    int m,n;
    scanf("%d%d",&m,&n);
    isprime(m,n);
    return 0;
}
int isprime(int a,int b)
{
    int i,j=0,sum=0,k;
    for(i=a;i<=b;i++)
    {
            for(k=1;k<=b;k++)
        {
            if(i%k==0)
            j+=1;
        }
        if(j<=2)
        sum+=i;
        j=0;
    }
    printf("%d",sum);
    return 0;
}

大神能帮我看看错哪了嘛!