海洋之心


私信TA

用户名:wanggongsheng

访问量:132612

签 名:

等  级
排  名 18
经  验 21668
参赛次数 3
文章发表 163
年  龄 26
在职情况 学生
学  校
专  业 计算机技术

  自我简介:

读研ing,平时不登录dotcpp

#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;
}

解题思路:





注意事项:





参考代码:

 

0.0分

6 人评分

  评论区

对不起,才看到m小于n,,,不过效率真的真的有问题
2018-11-26 17:44:52
还有你的输入的m,n,你知道哪个大吗,我觉得应该先判断大小
2018-11-26 17:37:45
效率不高,判断素数就是指需要循环到根号x就行了,注意要带等号,小于根号x的时候就不是素数了,大于根号x的时候还可能是吗,x的两个因子,肯定是一个大于等于根号x,一个小于等于根号x
2018-11-26 17:37:04
#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;
}
有人能看看我这个哪错了
2018-10-02 22:06:13
#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;
}

大神能帮我看看错哪了嘛!
2018-08-21 10:16:04
请教一下为什么下面的程序达不到目标,需要怎么修改

#include <stdio.h>

int isprime(int m,int n)
{
	int i,j=0,x,sum=0;
	for(x=m;x<=n;x++)
	 {
		 for(i=2;i<x;i++)
		{					
			if(x%i==0)	
				j=1;						 
		} 
		 if(j==0) sum=sum+x;
	}
	 return sum; 
}

int main()
{
	int m,n,sum;
	scanf("%d %d",&m,&n);
	    sum=isprime(m,n);
	printf("%d\n",sum);
	getchar();
	getchar();
	return 0;
}
2018-04-08 01:36:33
比较全面
2018-04-05 18:41:39