#include <stdio.h>
#include <pthread.h>
void* factorial(void* arg) {
int n = *(int*)arg;
long long fact = 1;
for(int i = 1; i <= n; i++) {
fact *= i;
}
printf("Factorial of %d = %lld\n", n
, fact
); return NULL;
}
int main() {
pthread_t thread;
int number;
pthread_create(&thread, NULL, factorial, &number);
pthread_join(thread, NULL);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+Cgp2b2lkKiBmYWN0b3JpYWwodm9pZCogYXJnKSB7CiAgICBpbnQgbiA9ICooaW50Kilhcmc7CiAgICBsb25nIGxvbmcgZmFjdCA9IDE7CgogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBmYWN0ICo9IGk7CiAgICB9CgogICAgcHJpbnRmKCJGYWN0b3JpYWwgb2YgJWQgPSAlbGxkXG4iLCBuLCBmYWN0KTsKICAgIHJldHVybiBOVUxMOwp9CgppbnQgbWFpbigpIHsKICAgIHB0aHJlYWRfdCB0aHJlYWQ7CiAgICBpbnQgbnVtYmVyOwoKICAgIHByaW50ZigiRW50ZXIgYSBudW1iZXI6ICIpOwogICAgc2NhbmYoIiVkIiwgJm51bWJlcik7CgogICAgcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgZmFjdG9yaWFsLCAmbnVtYmVyKTsKICAgIHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOwoKICAgIHJldHVybiAwOwp9