没啥好说的,比较简单,就是注意一些特殊的提放就行啦
/* 功能Function Description: HDOJ_2574 开发环境Environment: vc6.0 技术特点Technique: 版本Version: 作者Author: jzjz 日期Date: 20120813 备注Notes: 题目大意是 找出女生编号中,包含素数种类最多的(不是个数),如果两个相同,找出字典数小的,输出名字 */#include#include int p[10000];int main(){ int T,n,i,j,k,flat,x,sum,t,h,max; char s[30],str[30]; k=0; p[0]=2; p[1]=3; k=2; for(i=5;i<35000;i++) { flat=0; for(j=0;p[j]*p[j]<=i;j++) //这是一个加速 算法 { if(i%p[j]==0) { flat=1; break; } } if(flat==0) p[k++]=i; } scanf("%d",&T); while(T--) { scanf("%d",&n); max=-1; while(n--) { scanf("%s%d",str,&x); sum=0; while(x>1) { for(i=0;i max) { max=sum; strcpy(s,str); } else if(sum==max) { if(strcmp(s,str)>0) strcpy(s,str); } } printf("%s\n",s); } return 0;}