2025年厦门大学计算机考研复试机试真题
2025年厦门大学计算机考研复试上机真题
历年厦门大学计算机考研复试上机真题
历年厦门大学计算机考研复试机试真题
更多学校题目开源地址:https://gitcode.com/verticallimit1/noobdream
N 诺 DreamJudge 题库:输入 “学校名称” 即可筛选该校历年机试真题,题目均在考纲范围内,按难度自动排序。还可搭配《计算机考研机试攻略》刷题,书中题目可通过题号直接在题库中查找。
非素数个数
题目描述
Time Limit: 1000 ms
Memory Limit: 256 mb
求a-b之间的非素数个数
特别的,1也算作素数,区间是[a, b]。
输入输出格式
输入描述:
多组测试数据。 输入两个正整数数a,b,其中a<=b<=10^7。
输出描述:
输出答案。
输入输出样例
输入样例#:
1 10 1 100
输出样例#:
5 74
代码一
- #include <bits/stdc++.h>
- using namespace std;
- int f[10000000]={0};
- void func(int b){
- for(int i=2;i<=sqrt(b);i++){
- if(f[i]==0)
- for(int j=i*i;j<=b;j+=i){
- f[j]=1;
- }
- }
- }
- int main(){
- int a,b;
- while(cin>>a>>b){
- int cnt=0;
- func(b);
- for(int i=a;i<=b;i++){
- if(f[i]==1)
- cnt++;
- }
- cout<<cnt<<endl;
- }
- return 0;
- }
代码二
- #include<bits/stdc++.h>
- using namespace std;
- int n;
- const int N=1e7+5;
- int s[N];
- bool st[N];
- void prime()
- {
- st[1]=1;
- for(int i=2;i<N;i++)
- {
- st[i]=1;
- }
- for(int i=2;i<N;i++)
- {
- if(st[i])
- {
- for(long long j=(long long)i*i;j<N;j+=i)
- st[j]=0;
- }
- }
- s[0]=0;
- for(int i=1;i<N;i++)
- {
- s[i]=s[i-1]+(st[i]==1?1:0);
- }
- }
- int main()
- {
- prime();
- int a,b;
- while(cin>>a>>b){
- int res=b-a+1;
- int ans=s[b]-s[a-1];
- cout<<res-ans<<endl;
- }
- }
代码三
#include <stdio.h>#include <stdbool.h>#include <math.h>bool mark[10000001];void init(){for(int i = 1;i <= 10000000;i++){mark[i] = false;}int bound = (int)sqrt(10000000) + 1;for(int i = 2; i <= bound;i++){if(mark[i] == true){continue;}for(int j = i * i;j <= 10000000;j += i){mark[j] = true;}}}int main(){int a, b;init();while(scanf("%d%d", &a, &b)!=EOF){int res = 0;for(int i = a; i <= b;i++){if(mark[i] == true){res++;}}printf("%d\n", res);}return 0;}