/* @JUDGE_ID: xxxxxxx 160 C "by Alex Lee" */ #include #include int count[25],index[98],p[25]; /* 25 is the number of primes >=2 and <=100 */ int prime(int n) { int i; for (i=2;i<=n/2;i++) if (n%i==0) return 0; return 1; } void factor(int n) { int i,j; if (prime(n)) { count[index[n]]++; return; } for (i=2;i<=n/2;i++) { if (n%i==0) { count[index[i]]++; factor(n/i); break; } } } int main(void) { int i,j,n,lastp; for (i=2,j=0;i<=100;i++) if (prime(i)) { p[j]=i; index[i]=j++; } while (scanf("%d",&n)==1) { if (n==0) break; for (i=0;i<25;i++) count[i]=0; for (i=2;i<=n;i++) { factor(i); } lastp=24; /* mean prime number 97 */ for (i=0;i<25;i++) if (p[i]>n) { lastp=i-1; break; } else if (p[i]==n) { lastp=i; break; } if (lastp<15) { printf("%3d! =",n); for (i=0;i<=lastp;i++) printf("%3d",count[i]); printf("\n"); } else { printf("%3d! =",n); for (i=0;i<15;i++) printf("%3d",count[i]); printf("\n "); for (i=15;i<=lastp;i++) printf("%3d",count[i]); printf("\n"); } } return 0; }