码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 3823 Prime Friend

时间:2019-02-08 17:10:52      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:swap   names   space   end   print   stream   prim   cpp   puts   

这题就是一道暴力

但是我还有一些不明白的

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN=20000005;
inline int read(){
	int x=0,f=1,ch=getchar();
	while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
	while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();}
	return x*f;
}
inline void swap(int &x,int &y){
	int z=x;x=y;y=z;
}
bool is_prime[MAXN];
int pri[MAXN],tail;
inline void mk(){
	for(int i=2;i<=20000000;i++){
		if(!is_prime[i]) pri[++tail]=i;
		for(int j=1;j<=tail&&i*pri[j]<=20000000;j++){
			is_prime[i*pri[j]]=1;
			if(i%pri[j]==0) break;
		}
	}
}
int main(){
	int T=read();mk();
	for(int cas=1;cas<=T;cas++){
		printf("Case %d: ",cas);
		int x=read(),y=read();
		if(x>y) swap(x,y);
		if(x==y) puts("-1");
		else if(x==1&&y==2) puts("1");
		else if(x==2&&y==3) puts("0");
		else if((y-x)&1) puts("-1"); 
		else{
			for(int i=1;i<tail;i++){
				if(pri[i]<x||pri[i+1]<y) continue;
				if(pri[i]-x!=pri[i+1]-y) continue;
				// cout<<pri[i]<<"\t"<<pri[i+1]<<endl;
				printf("%d\n",pri[i]-x);
				break;
			}
		}
	}
	return 0;
}

  

HDU 3823 Prime Friend

标签:swap   names   space   end   print   stream   prim   cpp   puts   

原文地址:https://www.cnblogs.com/gcyyzf/p/10356354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!