hello kity
期待您的批阅,由于写解题报告时 不一定考虑的很周到,所以如果您有什么不懂的地方,请您留言,然而一天之内我肯定会看见您信息,再对代码注释详细,让您更好的阅读
分类
最新评论
最新留言
链接
RSS
计数器
223178
功能
HDU 2138(求素数的个数,容易超时!提醒自己)
spoiler
posted @ 2011年4月16日 17:10
in 未分类
, 1567 阅读
题目分析:这里不能打表,然后要用到求素数的 优化!也就是我 前面一篇文章提到的。代码直接注释一下就可以了 还是看代码吧
#include<iostream> #include<cstdio> #include<cmath> using namespace std; bool prime(int x){ if(x%2==0&&x!=2) return false; //偶数肯定不是素数! double k=sqrt(x); //切记这里一定要用k记录他的开方 //如果写成for(int i=3;i*i<=x;i+=2) //就超时! for(int i=3;i<=k;i+=2)//枚举奇数! if(x%i==0) return false; return true; } int main(){ int cas,n,flag,ans=0; while(~scanf("%d",&cas)){ ans=0; while(cas--){ scanf("%d",&n); if(prime(n)) ans++; } printf("%d\n",ans); } return 0; }