HDU2866 Special Prime

HDU2866 Special Prime

Description

给定L,求有多少个小于L的素数p,满足方程\(n^3+p*n^2=m^3\) \(n\in Z^+,m\in Z^+\)

Input Format

输入有多组数据,每组数据一行,每行一个正整数L。

Output Format

对于每组数据输出一行一个正整数,表示满足条件的素数个数,若没有满足条件的素数输出“No Special Prime!”

Sample Input

7
777

Sample Output

1
10

Solution

引理一:\(k \in Z^+\),\((k^2+k^3)\)不是完全立方数。
证明:

假设\(k^2+k^3=a^3\),显然\(a>k\)

则\(k^2=a^3-k^3\)

​ \(=(a-k)(a^2+a*k+k^2)\)
​
​ \(\geq a^2+a*k+k^2\)

​ \(>k^2\)

​ 存在矛盾,故假设不成立,所以\(\forall k \in Z^+ ,(k^2+k^3)\)不是完全立方数

引理二:\(n \in Z^+ ,若n^2为完全平方数,则n也为完全平方数\)

​ 证明:

​ \(n^2=x^3\)

​ \(n=\prod_{i=1}^k {p_i^{a_i}} ,\forall a_i \in Z^+\)

\(\because \sqrt [3] {n^2}=\prod_{i=1}^k {p_i^{\frac {2*a_i} 3}} \in Z^+\)

​ \(\therefore \sqrt [3] n= \prod_{i=1}^k {p_i^{\frac {a_i} 3}\in Z^+}\)

​ \(\therefore n为完全立方数\)

假设n,p不互质,则

​ \(n=p*k\)

​ \(k^3*p^3+k^2+p^3=m^3\)

​ \((k^2+k^3)*p^3=m^3\)

由引理一可得m不是整数,与条件矛盾,所以n与p互质

gcd(n+p,p)=gcd(n,p)=1,所以n与n+p互质

所以\(n^2与n+p互质\)

又因为\(n^2(n+p)=m^3\)

所以\(n^2,n+p\)为完全立方数

由引理二得\(n\)也为完全立方数

设\(n=a^3,n+p=b^3\)

得\(p=b^3 -a^3\)

​ \(=(b-a)(b^2 +ab+a^2)\)

因为\(p\)为素数,所以\(b-a=1\)(因为 \(b-a\) 与 \(b^2+ab+a^2\)皆为正整数,所以两者之中必定是一个为\(1\)一个为\(p\))

代入得\(p=3a^2+3a+1\)

所以\(Ans=\sum _{i=1}^{3i^2+3i+1 \leq L}[3i^2+3i+1为素数]\)

posted @ 2017-10-30 18:32  Hyheng  阅读(307)  评论(1)    收藏  举报