/* Test function to print out multifactorials */ int main(void){ int i, j; for (i = 1; i <= HIGHEST_DEGREE; i++){ printf("\nDegree %d: ", i); for (j = 1; j <= LARGEST_NUMBER; j++){ printf("%d ", multifact(j, i)); } } }
int main() { int i,j; boolean[0]=1; boolean[1]=1; for(i=2;i*i<10000;i++) { if(!boolean[i]) { for(j=i*i;j<10000;j+=i) { boolean[j]=1; } } } int index=0; for(i=2;i<10000;i++) { if(!boolean[i]) { primes[index++]=i; } } int test_cases; int cases=0; scanf("%d",&test_cases); while(test_cases) { int n; cases++; char temp[21]={'\0'}; scanf("%d%s",&n,temp); int counter=strlen(temp); int factors[10001]={0}; multifact(n,factors,counter); double output=1;//leh lama 2st5demt doubles mshyet? for(i=0;i<=1000;i++) { output*=(factors[i]+1.0); } if(output > 1e18) { printf("Case %d: Infinity\n",cases); }else { printf("Case %d: %.0lf\n",cases,output); } test_cases--; } return 0; }
/* Recursive implementation of multifactorial function */ int multifact(int n, int deg){ return n <= deg ? n : n * multifact(n - deg, deg); }