您的位置:首页 > 其它

Hdu 1164-Eddy's research I

2013-08-05 15:49 423 查看
哈希素数表

题意:

任何一个数都有素数因子,每次判断完一个素数因子之后还要继续判断后续的素数因子,按格式输出。

AC代码:

#include <stdio.h>
#include <string.h>
#include <math.h>
//#include <algorithm>
//using namespace std;

int prime[65535];

void hash() {
int i,j;
memset(prime, 1, sizeof(prime));
for(i=2; i<65535; i++)
for(j=2; j*i<65535; j++) {
if(prime[i])
prime[i*j] = 0;
}
prime[0] = prime[1] = 0;
}

int main() {
hash();
int ans[60000];
int n,i,tmp;
while(scanf("%d",&n)!=EOF) {
if(!n) break;
//memset(ans, 0, sizeof(ans));
tmp = 0;
for(i=65535; i>0; i--) {
if(prime[i] && n%i==0) {
ans[tmp++] = i;
n/= i++;
}
}
//sort(ans[0], ans[0+tmp]);
printf("%d",ans[tmp-1]);
for(i=tmp-2; i>=0; i--) {
printf("*%d",ans[i]);
}
puts("");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: