赞
踩
题目描述
六一儿童节到了,五年级2班的张老师组织了数素数游戏。游戏规则是这样的:张老师任意给出一个正整数m,参加游戏者说出1 到m 之间(包括1和 m)素数的个数,谁最先说出正确的答案将会得到一个奖品。现在你编写一个程序对给出的m,输出正确的答案。
输入
只有一个正整数m(m为小于30000的正整数)
输出
只有一个数,就是1到m之间素数的个数。
样例输入
20
样例输出
8
数据范围限制
提示
1到20之间共有8个素数:2,3,5,7,11,13,17,19
这题其实没什么好讲的,只是枚举查找就行了,代码:
c++:
#include<iostream> #include<cmath> using namespace std; int ans=1,n; bool zhishu(int x) { bool f=true; int l=sqrt(x); for(int i=2;i<=l;i++) { if(x%i==0) { f=false; break; } } return f; } int main() { cin>>n; if(n==1) { cout<<0; return 0; } for(int i=1;i<=n;i+=2) { if(i>=3) { if(zhishu(i)==true) ans++; } } cout<<ans; return 0; }
C语言:
#include<stdio.h> #include<math.h> int ans=1,n; bool zhishu(int x) { bool f=true; int l=sqrt(x); for(int i=2;i<=l;i++) { if(x%i==0) { f=false; break; } } return f; } int main() { scanf("%d",&n); if(n==1) { printf("0"); return 0; } for(int i=1;i<=n;i+=2) { if(i>=3) { if(zhishu(i)==true) ans++; } } printf("%d",ans); return 0; }
拜拜~~~~~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。