题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1405
心得:
题目输出格式有问题,每行最后一个数多输出了一个空格。
代码:
#include <stdio.h>
#include <string.h>
int main(){
int n,i,j,a[20][2],t=1;
while(~scanf("%d",&n) && n>0){
if(t!=1) printf("\n");
memset(a,0,sizeof(a));
printf("Case %d.\n",t++);
for(i=2,j=0;i<=n;){
while(n%i) i++;
n/=i;
if(a[j][0]!=i) {a[++j][0]=i;a[j][1]++;}
else {a[j][1]++;}
}
for(i=1;i<20;i++){
if(a[i][0]!=0){
printf("%d %d ",a[i][0],a[i][1]);
}
else break;
}
printf("\n");
}
return 0;
}