本蒟蒻写了一段代码,但是无奈UVA账号不知是被封了还是被盗了无法使用,
求好心人帮忙提交并指正
代码:
#include <iostream>
#include <stdio.h>
#include <bitset>
using namespace std;
int l,r;
bitset<1000006>v;
inline bool check(int x) {
if(x<=1) return 0;
for(int i=2; i<=x/i; i++)
if(!(x%i)) return 0;
return 1;
}
signed main() {
while(~scanf("%d %d",&l,&r)) {
int cnt=0;
int lp=-2e9;//last_prime
int cp1=-1e9,cp2=1e9;//closest
int dp1=114514,dp2=114514;//most diatant
for(int i=l; i<=r; i++) {
if(check(i)) {
cnt++;
if(cnt>1) {
if(cp2-cp1>i-lp) {
cp2=i,cp1=lp;
}
if(dp2-dp1<i-lp) {
dp2=i,dp1=lp;
}
}
lp=i;
}
}
if(cnt<2) {
printf("There are no adjacent primes.\n");
} else {
printf("%d,%d are closest, %d,%d are most distant.\n",cp1,cp2,dp1,dp2);
}
}
return 0;
}