天天看点

UVA 1415 Gauss Prime(高斯素数)

题意:判断a+b*sqrt(-2)是否为素数

解法:参考高斯素数的定义即判断方法

http://zh.wikipedia.org/wiki/高斯整數

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define y1 y11
#define mem(a,b) memset(a,sizeof(a),b)
using namespace std;
typedef long long ll;

int n,a,b;

bool is_prime(int x){
    for(int i=;i*i<=x;i++){
        if(x%i==) return false;
    }
    return true;
}

int main(){
    scanf("%d",&n);
    bool flag;
    while(n--){
        scanf("%d%d",&a,&b);
        if(a!=&&is_prime(a*a+*b*b)) flag=true;
        else flag=false;
        if(flag) printf("Yes\n");
        else printf("No\n");
    }
}