HDU1164_Eddy's research I_素数筛选法
2011-11-07 00:41
417 查看
题目大意:
让你输入一个数n,然后将n拆分为n内的素数的乘积。
解题思路:
先把素数打表,然后暴力即可。
代码:
[code]
#include
#include
using namespace std;
const int MAX=65540;
int p[8]={4,2,4,2,4,6,2,6};
int num[MAX];
int Prime(int n)//判断素数
{
int i=7,j,q;
if(n==1)//1不是素数,也不是合数
return 0;
if(n==2||n==5||n==3)
return 1;
if(n%2==0||n%3==0||n%5==0)
return 0;
q=(int)sqrt((double)n);
for(;i<=q;)
{
for(j=0;j<8;j++)
{
if(n%i==0)return 0;
i+=p[j];
}
if(n%i==0)return 0;
}
return 1;
}
void initPrime()
{
memset(num,0,sizeof(num));
int end=(int)pow(2.0,15);
for(int i=1;i<=end;i++)
{
if(Prime(i))
num[i]=1;
}
}
int main(void)
{
int n;
initPrime();
while(cin>>n)
{
int flag=0;
int temp=n;
while(temp!=1)
{
for(int i=2;i<=n;i++)
{
if(num[i] && temp%i==0)
{
temp/=i;
if(!flag)
{
cout<
让你输入一个数n,然后将n拆分为n内的素数的乘积。
解题思路:
先把素数打表,然后暴力即可。
代码:
[code]
#include
#include
using namespace std;
const int MAX=65540;
int p[8]={4,2,4,2,4,6,2,6};
int num[MAX];
int Prime(int n)//判断素数
{
int i=7,j,q;
if(n==1)//1不是素数,也不是合数
return 0;
if(n==2||n==5||n==3)
return 1;
if(n%2==0||n%3==0||n%5==0)
return 0;
q=(int)sqrt((double)n);
for(;i<=q;)
{
for(j=0;j<8;j++)
{
if(n%i==0)return 0;
i+=p[j];
}
if(n%i==0)return 0;
}
return 1;
}
void initPrime()
{
memset(num,0,sizeof(num));
int end=(int)pow(2.0,15);
for(int i=1;i<=end;i++)
{
if(Prime(i))
num[i]=1;
}
}
int main(void)
{
int n;
initPrime();
while(cin>>n)
{
int flag=0;
int temp=n;
while(temp!=1)
{
for(int i=2;i<=n;i++)
{
if(num[i] && temp%i==0)
{
temp/=i;
if(!flag)
{
cout<
相关文章推荐
- hdu 1164 Eddy's research I【快速打印素数表】【水题】
- HDU 1164 Eddy's research I(素数连乘)
- HDU 1164 Eddy's research I(素数)
- HDU 1164 Eddy's research I(将数分解成素数之积)
- HDU 1164 Eddy's research I(素因子拆分)
- HDU 1164 Eddy's research I (数学)
- hdu 1164 Eddy's research I (水题,打表)
- HDU 1164 Eddy's research I (质因子分解)
- HDU 1164 Eddy's research I(埃拉托斯尼斯筛法求素数)
- 杭电OJ——1164 Eddy's research I——素数筛选
- HDU 1164 Eddy's research I
- hdu 1164 Eddy's research I 素数筛选法
- ACM-哈希数表之Eddy's research I——hdu1164
- hdu 1164 Eddy's research I 打印素数表
- hdu1164 Eddy's research I(数论:唯一分解式)
- hdu 1999 素数筛选
- hdu 1164 质因子分解 (筛素数模板)+ hdu 1215
- HDU1405-素数筛选
- hdu-oj 1164 Eddy's research I
- HDU1164:Eddy's research I(素数筛选法)