2017 ACM/ICPC Asia Regional Qingdao Online 1011(数学知识)

来源:互联网 发布:php工程师 编辑:程序博客网 时间:2024/06/07 14:19

A Cubic number and A Cubic Number

题意:判断一个素数是否是两个立方数之差。


x^3-y^3=(x-y)(x^2+xy+y^2),观察(x-y),可以知道只有相邻的立方数之差才可能是素数。


代码:

#include <bits/stdc++.h>using namespace std;long long a[800001]; int main(){for(long long i=2;i<800001;i++)    a[i]=i*i*i-(i-1)*(i-1)*(i-1);int T;long long p;scanf("%d",&T);while(T--){scanf("%lld",&p);if(upper_bound(a+2,a+800001,p)-lower_bound(a+2,a+800001,p))    puts("YES");else    puts("NO");}}

原创粉丝点击