**------------恢复内容开始------------**
codeforce 1474B Different Divisors 模拟 素数筛 C
分析
要求两个因子之间至少差d,至少四个,最好是素数
那数据1e4。也不大,打表素数,挨个寻找,找到两个就可以了。
代码
https://codeforces.com/contest/1474/submission/105586801
#include <cstdio> #include <cstring> #include <algorithm> #include <vector> #include <math.h> #include <string.h> #include <algorithm> #include <iostream> #include <string> #include <sstream> #include <iostream> #include <time.h> #include <queue> #include <list> #include <map> #include <set> #include <vector> #include <stack> #include <string.h> #include <bitset> #define sf scanf #define pf printf #define lf double #define p123 printf("123 "); #define pn printf(" "); #define pk printf(" "); #define p(n) printf("%d",n); #define pln(n) printf("%d ",n); #define s(n) scanf("%d",&n); #define ss(n) scanf("%s",n); #define ps(n) printf("%s",n); #define sld(n) scanf("%lld",&n); #define pld(n) printf("%lld",n); #define slf(n) scanf("%lf",&n); #define plf(n) printf("%lf",n); #define sc(n) scanf("%c",&n); #define pc(n) printf("%c",n); #define gc getchar(); #define ll long long #define re(n,a) memset(n,a,sizeof(n)); #define len(a) strlen(a) #define eps 1e-13 #define zero(x) (((x) > 0? (x):(-x)) < eps) using namespace std; int a[40000]; int main(){ int t; s(t) int maxi = 30505; for(int i = 0; i <= maxi; i ++){ a[i] = 1; } for(int i = 2; i <= maxi; i ++){ if(a[i] == 1){ for(int j = i*i; j <= maxi; j += i){ a[j] = 0; } } } while(t --){ int n; s(n) int x,y; for(int i = 1+n; i <= maxi; i ++){ if(a[i] == 1){ x = i; break; } } for(int i = x+n; i <= maxi; i ++){ if(a[i] == 1){ y = i; break; } } p(x*y) pn } return 0; }