1 条题解
-
0
C :
#include <stdio.h> #include <math.h> int sum(int x,int y); int zhi(int m); int main () { int x,y; while(scanf("%d %d",&x,&y)!=EOF) { printf("%d\n",sum(x,y)); } return 0; } int sum(int x,int y) { int i;int count=0; for(i=x;i<=y;i++) { if(zhi(i)==1) count++; } return count; } int zhi(int m) { int i; if(m==0||m==1) return 0; else if(m==2) return 1; else if(m%2==0) return 0; else for(i=3;i<=sqrt(m);i+=2) { if(m%i==0) return 0; } return 1; }
C++ :
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <sstream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <numeric> #include <cassert> #include <complex> #include <ctime> #define clr(x,a) memset(x,a,sizeof(x)) #define sz(x) (int)x.size() #define rep(i,n) for(int i=0;i<n;i++) #define repeat(i, a, b) for(int i=(a);i<=(b);i++) #define all(v) (v).begin(), (v).end() #define Unique(store) store.resize(unique(store.begin(),store.end())-store.begin()) #define X first #define Y second using namespace std; const int N=1e5+10; bool isp(int n) { for (int i=2;i*i<=n;i++) { if (n%i==0) return false; } return true; } bool v[N]; int main () { memset(v,0,sizeof v); for (int i=2;i<=100000;i++) v[i]=isp(i); int a,b; while (cin>>a>>b) { int ret=0; for (int i=a;i<=b;i++) ret+=v[i]; cout<<ret<<endl; } return 0; }
- 1
信息
- ID
- 1006
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者