HDU 3823 Prime Friend
Posted gcyyzf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 3823 Prime Friend相关的知识,希望对你有一定的参考价值。
这题就是一道暴力
但是我还有一些不明白的
#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]<<" "<<pri[i+1]<<endl; printf("%d ",pri[i]-x); break; } } } return 0; }
以上是关于HDU 3823 Prime Friend的主要内容,如果未能解决你的问题,请参考以下文章