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;
}
题意:
任何一个数都有素数因子,每次判断完一个素数因子之后还要继续判断后续的素数因子,按格式输出。
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;
}
相关文章推荐
- hdu 1164 Eddy's research I
- hdu 1164 Eddy's research I
- HDU1164_Eddy's research I【Miller Rabin素数测试】【Pollar Rho整数分解】
- HDU1164 Eddy's research I
- 【HDU】1164 Eddy's research I
- HDU 1164 Eddy's research I
- HDU 1164 Eddy's research I
- hdu1164 Eddy's research I
- HDU 1164 Eddy's research I
- HDU1164 Eddy's research I
- hdu 1164 Eddy's research I (数论)
- HDU1164 Eddy's research I
- hdu(1164)Eddy's research I
- hdu1164 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
- HDU1164 Eddy's research I
- hdu-1164-Eddy's research I