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为素数]\)