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"); } }