怎样做网站公司成都seo招聘
导读:
namespace?primeNS{
/*解决:素数表
*算法:筛法
*输入:范围MaxN
*输出:素数个数pp,?素数表[p[0],p[pp])
*备注:效率:1千万时,sicily-0.59?ZOJ-0.85?(朴素版sicily1.00)
*/????const?int?MaxN=?10000000?//查找[2,maxN]范围的素数????const?int?Len=?MaxN/2+1????int?p[Len]={2}????,pp=1????void?init(){
int?i,j,cur;
for(i=1?;?++i){
if(!p[i]){
p[pp++]=cur=i*2+1//找到一个素数????????????????for(j=2*i*(i+1);?j
p[j]=1????????????????if(j==2*i*(i+1))//筛完,可照抄????????????????????break????????????}????????}????????for(++i;i
p[pp++]=i*2+1????}/**/????/*解决:质因数分解
*算法:顺搜,逐个测试
*输入:待分解数num,?init()的输出
*输出:质因数个数dp,?质因数表d[0dp-1],指数表e[0dp-1];
*备注:若num>=MaxN^2,可能会将所有大于MaxN的质因数之积看作一质因数
*/????int?d[Len],e[Len],dp;
void?factorization(int?num){
int?i,cnt,div;
dp=0????????for(i=0i
if(num%p[i]==0){
d[dp]=p[i];
div=p[i]*p[i];?cnt=1????????????????while(num%div==0){
div*=p[i];
++cnt;
}????????????????e[dp++]=cnt;
div/=p[i];
if((num/=div)==1)
break????????????}????????}????????if(num!=1){
d[dp]=num;?e[dp++]=1????????}????}}using?namespace?primeNS;
#include
init();
factorization(293910);
int?i;
for(i=0i
printf("+%d^%d",d[i],e[i]);
}????printf("/n");
return?0}
本文转自
http://www.cnitblog.com/cockerel/archive/2006/07/11/13479.html
namespace?primeNS{
/*解决:素数表
*算法:筛法
*输入:范围MaxN
*输出:素数个数pp,?素数表[p[0],p[pp])
*备注:效率:1千万时,sicily-0.59?ZOJ-0.85?(朴素版sicily1.00)
*/????const?int?MaxN=?10000000?//查找[2,maxN]范围的素数????const?int?Len=?MaxN/2+1????int?p[Len]={2}????,pp=1????void?init(){
int?i,j,cur;
for(i=1?;?++i){
if(!p[i]){
p[pp++]=cur=i*2+1//找到一个素数????????????????for(j=2*i*(i+1);?j
p[j]=1????????????????if(j==2*i*(i+1))//筛完,可照抄????????????????????break????????????}????????}????????for(++i;i
p[pp++]=i*2+1????}/**/????/*解决:质因数分解
*算法:顺搜,逐个测试
*输入:待分解数num,?init()的输出
*输出:质因数个数dp,?质因数表d[0dp-1],指数表e[0dp-1];
*备注:若num>=MaxN^2,可能会将所有大于MaxN的质因数之积看作一质因数
*/????int?d[Len],e[Len],dp;
void?factorization(int?num){
int?i,cnt,div;
dp=0????????for(i=0i
if(num%p[i]==0){
d[dp]=p[i];
div=p[i]*p[i];?cnt=1????????????????while(num%div==0){
div*=p[i];
++cnt;
}????????????????e[dp++]=cnt;
div/=p[i];
if((num/=div)==1)
break????????????}????????}????????if(num!=1){
d[dp]=num;?e[dp++]=1????????}????}}using?namespace?primeNS;
#include
init();
factorization(293910);
int?i;
for(i=0i
printf("+%d^%d",d[i],e[i]);
}????printf("/n");
return?0}
本文转自
http://www.cnitblog.com/cockerel/archive/2006/07/11/13479.html