首页 > 代码库 > 百练3177:判决素数个数
百练3177:判决素数个数
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。
- 输入
- 两个整数X和Y(1 <= X,Y <= 105)。
- 输出
- 输出一个整数,表示X,Y之间的素数个数(包括X和Y)。
- 样例输入
1 100
样例输出
25
分析:
由于 1 <= X,Y <= 105 因此不能在开始时将素数都算出来,保存在数组里(因为开不了那么大的数组)。
遍历X到Y,判断每一个数是否为素数,注意题目给的X和Y可能会 X > Y,这时候要交换一下
代码:
#include <cstdio> #include <cstring> #include <cmath> bool isPrime(int x){ if(x == 1)return false; if(x % 2 == 0 && x != 2)return false; else{ for(int i = 3;i < sqrt(x)+1;i += 2){ if(x % i == 0)return false; } return true; } } int main(){ int x,y; scanf("%d%d",&x,&y); int sum = 0; if(x > y){ int t; t = x; x = y; y = t; } for(int i = x;i <= y;i++){ if(isPrime(i) == true)sum++; } printf("%d\n",sum); return 0; }
百练3177:判决素数个数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。