hdu2866 数论Prime
来源:互联网 发布:淘宝会员名怎么更改 编辑:程序博客网 时间:2024/05/20 19:19
化简一下得到 n^2 *( n + p ) = m^3
假设 n^2 和 n+p 之间有公共素因子 p , 那么 n+p = k*p , 即 n=p*(k-1),带进去得到 p^3 * (k-1)^2 *k = m^3 , (k-1)^2*k 肯定是不能表示成某一个数的三次幂的,假设不成立
所以 n^2 和 n+p 之间没有公共素因子 p , 那么可以假设n=x^3 , n+p=y^3 , 相减得到 p = y^3 - x^3 = (y-x) *(y^2+y*x+x^2) , 哈哈, p是素数,所以 y-x=1 , p =(x+1)^3 - x^3 = 3*x^2+3*x+1 , 暴力一下x,判断是否是素数就ok了
推公式,然后第一次写素数打表~~
#include <iostream>#include <algorithm>#include <cstring>#include <math.h>#include <cstdio>#include <queue>using namespace std;#define FOR(i,j,k) for(int i=j;i<=k;i++)#define mod 9901#define ll long longbool prime[1000010];int main(){ memset(prime,true,sizeof(prime)); prime[0]=prime[1]=false; for(int i=2;i*i<=1000000;i++) { if(prime[i]==true) for(int j=2*i;j<=1000000;j+=i) prime[j]=false; } int n; while(~scanf("%d",&n)) { int ans=0; for(int i=1;;i++) { int temp=3*i*i+3*i+1; if(temp>n) break; if(prime[temp]) ans++; } if(ans==0) printf("No Special Prime!\n"); else printf("%d\n",ans); } return 0;}
0 0
- hdu2866 数论Prime
- HDU2866 Special Prime
- Twin Prime Conjecture + 数论
- 【数论】poj2689 Prime Distance
- UVA10650 - Determinate Prime - 数论
- Prime Distance(数论)
- HDU 2964 Prime Bases 数论
- POJ_2034_Anti-prime Sequences(数论+DFS)
- UVA 10140 - Prime Distance(数论)
- uva 10140 - Prime Distance(数论)
- [数论] POJ 3126 Prime Path
- POJ1365 Prime Land 初等数论
- hdu 2964 Prime Bases 数论~~
- POJ3126 Prime Path【数论】【BFS】
- HDOJ 1319 Prime Cuts<数论>
- csu 1756 prime(数论)
- LightOJ1356 Prime Independence(数论+匹配)
- poj1811 Prime Test 数论专题
- 如何加载HTML页面页面到另一个界面中
- MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
- 抽象类和接口详解
- linux多线程
- va_list/va_start/va_arg/va_end深入分析
- hdu2866 数论Prime
- 8.17 问题总结
- 黑马程序员——012——JavaAPI④(集合框架(泛型)、泛型类、泛型方法、泛型限定)
- fputs与fgets
- Servlet和JSP简单理解
- ios通过svg截取头像
- 沙盒认识二
- 实习笔记5
- 理解Fragment生命周期