https://ac.nowcoder.com/acm/contest/3346/K

题意:判断一个素数p是不是某两个数的立方差。

刚看到这道题一时半会都没有什么思路,看了题解恍然大悟,太久没碰数学或数论的,记录一下过程。

1.立方差公式:x3 - y3 = (x-y)(x2 + xy + y2)

2.(x-y)(x+ xy + y2)=p

3.因为p是素数,所以x-y=1

4.将x=y+1带入原公式化简得 3y(y+1)=p-1

5.要使上式成立,(p-1)%3==0 &&  sqrt((p-1)/3) * (sqrt((p-1)/3)+1) == (p-1)/3

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n;
n=scan.nextInt();
long p;
while(n!=0) {
n--;
p=scan.nextLong();
if((p-1)%3==0) {
p=(p-1)/3;
long y=(long)Math.sqrt(p);//向下取整
if(y*(y+1)==p)
System.out.println("YES");
else
System.out.println("NO"); }else
System.out.println("NO");
}
}
}

最新文章

  1. CRC循环冗余校验码总结(转)
  2. 用html5 js实现浏览器全屏
  3. yii2权限控制rbac之菜单menu最详细教程
  4. 关于WII光枪定位的设计(转)
  5. 初次接触Object对象变量
  6. 数学概念——A 几何概型
  7. MySQL入门转载
  8. 百度地图API的自动定位路线查询
  9. 在ubuntu下设置eclipse开发STM32等嵌入式设备
  10. Dynamics CRM 系统自定义部分的语言翻译
  11. postgresql设置主键
  12. masstree Seastar
  13. Ulua对象管理方式
  14. 20175310 迭代和JDB
  15. 可视化数据matplotlib之安装与简单折线图
  16. swift学习笔记之控制流
  17. 预备作业03:虚拟机安装及Linux操作系统练习
  18. Selenium WebDriver(Python)API
  19. PyCharm添加Selenium与Appium类库
  20. MongoDB安装配置及使用

热门文章

  1. Gson的序列化和反序列化-待更新
  2. 记MacOs视频mov与mp4格式转换问题解决
  3. Noip2016Day1T2 天天爱跑步
  4. oracle查询字段重复数据
  5. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) C. Messy 构造
  6. 【agc028E】High Elements(动态规划,线段树,贪心)
  7. 机器学习常见的几种评价指标:精确率(Precision)、召回率(Recall)、F值(F-measure)、ROC曲线、AUC、准确率(Accuracy)
  8. Java 小游戏 - 井字棋 v1.0 (初步完成) (2018.4.16更新)
  9. Add a Class from the Business Class Library 从业务类库添加类 (XPO)
  10. Python使用APScheduler实现定时任务