题解-hdu2866 Special Prime
Problem
题意:求区间\([2,L]\)有多少素数\(p\)满足\(n^3+pn^2=m^3\),其中\(n,m\)属于任意整数
Solution
原式等价于\(n^2(p+n)=m^3\)
可证当\(p|\gcd(n^2,n+p)\)时,无解,因为当\(n=k\cdot p\)时
\(k^2p^3+k^3p^3=m^3\)
\(m=p\sqrt [3]{k^2+k^3}\)可证无整数解,对于这一点,证明如下
\(k^2+k^3=k^2(1+k)\)
假如\(1+k\)为立方数,则要求\(k^2\)也为立方数,即\(k\)为立方数,这样的话,\(k\)与\(k+1\)都为立方数,这是不存在的(除非\(k=0\),但这样的话不满足我们的题设了)
假如\(1+k\)不是立方数,则要求\(k^2\)里头必须有因数来填补\(1+k\)不能被开立方根的空缺,但\(\gcd(k,1+k)=1\),所以不可能有因数来填补空缺
即\(m=p\sqrt[3]{k^2+k^3}\)无整数解
即\(n\not =k\cdot p\),即\(p\)不为\(\gcd(n^2,n+p)\)的因数,即它俩互质
若\(n=x^3,n+p=y^3\),则\(m=x^2y,p=y^3-x^3\)
则\((y-x)|p\),由于\(p\)是质数,所以\(y=x+1\)
代回去发现\(p=y^3-x^3=(x+1)^3-x^3\)
所以可以枚举\(x\),并使得计算出的\(p\)为质数即可
Code
#include <bits/stdc++.h>
#define rg register
const int N=1001000;
int is[N],f[N],n;
void prework(){
for(rg int i=2;i<1010;++i)if(!is[i])
for(rg int j=i*i;j<N;j+=i)is[j]=1;
for(rg int i=1;;++i){
int v=1ll*(i+1)*(i+1)*(i+1)-1ll*i*i*i;
if(v<N)f[v]=(is[v]?0:1);else break;
}for(rg int i=1;i<N;++i)f[i]+=f[i-1];
}
int main(){
prework();
while(~scanf("%d",&n))
if(n<7)puts("No Special Prime!");
else printf("%d\n",f[n]);
return 0;
}
题解-hdu2866 Special Prime的更多相关文章
- HDU2866 Special Prime
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=2866 题意:在区间[2,L]内,有多少个素数p,满足方程有解. 分析: 原方程变为: n^(b-1) ...
- 【HDU】2866:Special Prime【数论】
Special Prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 【题解】UVA10140 [Prime Distance]
[题解]UVA10140 Prime Distance 哈哈哈哈\(miller-rabbin\)水过去了哈哈哈 还能怎么办呢?\(miller-rabbin\)直接搞.枚举即可,还跑得飞快. 当然此 ...
- 【题解】CF45G Prime Problem
[题解]CF45G Prime Problem 哥德巴赫板子题? \(\frac{n(n+1)}{2}\)若是质数,则不需要分了. 上式 若是奇数,那么拆成2和另一个数. 上式 若是偶数吗,直接\(O ...
- Special Prime
Special Prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- hdu-2886 Special Prime---数论推导
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2866 题目大意: 问你1到L中有多少个素数满足n^3 + p*n^2 = m^3(其中n,m为大于1 ...
- 牛客NOIP暑期七天营-TG1 赛后题解
目录 牛客NOIP暑期七天营-提高组1 A-最短路 题目描述 link 题解 代码 B-最小生成链 题目描述 link 题解 代码 C-最小字典最短路 题目描述 link 题解 Update 牛客NO ...
- 字符串经典的hash算法
1 概述 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1). 设计高效算法往往需要使用Hash链表,常数级的查找速度是任何别的算法无 ...
- 几种经典的Hash算法的实现(源代码)
来源声明: http://blog.minidx.com/2008/01/27/446.html 先保存下来,以备后面研究,现在还看不懂! 哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这 ...
随机推荐
- 2、JPA-Annotation
注解放在类属性上不生效时可放在get方法上试试,原因未知 @Entity /** * @Entity 该Java类为实体类,将映射到数据库表.如声明一个实体类 Customer,它将映射到数据库中的 ...
- JAVA核心技术I---JAVA基础知识(package和import)
一:package 所有的Java类都是放置在同一个目录下面的,因此类之间的相互调用无需显式声明调用. –同一个目录下,两个类的名字不能相同 –文件过多,查找和修改都不易,且容易出 Java支持多个目 ...
- Ubuntu修改Apache默认Web端口
改成你要的端口,默认为80,这里我改成了8080,https改成了444,保存之后寻找000/default.conf并修改成和ports.conf文件一样的http端口,然后重启Apache服务器即 ...
- MySQL随记(二)
第一范式(1NF First Normal Format): 1. 列具有原子性(atomic) 原子(atom)是物质的最小单元, 它不能被再分割为更小的元素. 2. 表具有主键(Primary K ...
- Java SSM框架之MyBatis3(十)MyBatis批量插入数据(MySql)
插入成功后返回自增主键 <insert id="insertRole" parameterType="role" useGeneratedKeys=&qu ...
- linux连接工具隧道模式
使用linux连接工具,比如putty,xshell可以使用隧道模式跳转登录其他服务器 A->B B->C 比如正常情况下,A主机能访问B主机,B主机能访问C主机,那么就可以设置隧道模式让 ...
- Android 常见异常及解决办法
Ø 前言 本文主要记录 Android 的常见异常及解决办法,以备以后遇到相同问题时可以快速解决. 1. java.lang.NullPointerException: Attempt to i ...
- mesg命令帮助文档(ubuntu 18.04)
MESG() User Commands MESG() NAME mesg - display (or do not display) messages from other users SYNOPS ...
- 八、文件IO——存储映射
8.1 存储映射介绍 8.1.1 概念 存储映射是一个磁盘文件与存储空间的一个缓存相映射,对缓存数据的读写就相应的完成了文件的读写. 文件操作部分映射到虚拟内存的一块区域,我们对虚拟内存映射的那块区域 ...
- markdown & mathjax 初学笔记 latex
stackedit 1.标题大小和# # 数量代表标题大小,越多越小 2.* 斜体 * 3.** 粗体 ** 4.*** 又粗又斜 *** PS:符号紧贴 5. 分隔符 - - - 三个减号 PS: ...