您的位置:首页 > 其它

hdu 1164 Eddy's research I

2013-08-30 10:36 441 查看
先用筛法筛出范围内的素数;

然后就水了

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int prime[10000];
bool vis[65555];
int main()
{
memset(vis,0,sizeof(vis));
for(int i=2; i<=250; i++)
{
if(!vis[i])
{
for(int j=i*i; j<=65555; j+=i)
vis[j] = true;
}
}
int idx = 0;
for(int i=2; i<=65555; i++)
if(!vis[i])
prime[idx++] = i;

int x;
while (cin>>x)
{
int tmp=x;

int ncount=1;
for (int i=0; ; ++i)
{
while (tmp%prime[i]==0)
{
tmp/=prime[i];
if (ncount==1)
{
cout<<prime[i];
++ncount;
}
else
{
cout<<"*"<<prime[i];
}

if (tmp==1)
goto kiss;

}
}

kiss:;
cout<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hdu 1164