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

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

猜你喜欢

转载自blog.csdn.net/m0_37846371/article/details/78024326