首页 > 其他 > 详细

Codeforces Round #696 (Div. 2) B. Different Divisors

时间:2021-01-20 09:33:05      阅读:56      评论:0      收藏:0      [点我收藏+]

Codeforces Round #696 (Div. 2) B. Different Divisors

[原题链接](Problem - B - Codeforces)

题目分析

找规律,最后会发现是间隔大于等于d的两个质数的积。可以先打表,然后再用二分查找找到对应的下标,输出答案即可。

AC代码

#include<bits/stdc++.h>
using namespace std;
#define io ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
bool judge(int x){
	for(int i = 2; i <= sqrt(x); i++)
		if(x % i == 0) return 0;
	return 1;
}
const int N = 100100;
int prime[N];

int k = 1;
void init(){
	prime[0] = 2;
	for(int i = 3; i < N; i++){
		if(judge(i)) prime[k++] = i; 
	}
}
int t, n, m;
int main(){
    io;
    init();
    cin >> t;
    while(t--){
    	cin >> n;
    	int a = lower_bound(prime, prime + k, n + 1) - prime;
    	int b = lower_bound(prime + a, prime + k, n + prime[a]) - prime;
    	long long ans = prime[a] * prime[b];
    	cout << ans << endl;
    }

    return 0;
}

Codeforces Round #696 (Div. 2) B. Different Divisors

原文:https://www.cnblogs.com/FrankOu/p/14300830.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!