#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
void *fact(void* t) {
int i, n = *((int *)t);
for (i = n; i > 1; i--)
n = n * (i);
printf("factorial of %d = %d\n", *((int *)t
), n
); return NULL;
}
int main() {
pthread_t thread_id;
int n, ret;
ret = pthread_create(&thread_id, NULL, &fact, &n);
if (ret != 0) {
}
pthread_exit(0);
}
I2luY2x1ZGUgPHB0aHJlYWQuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgKmZhY3Qodm9pZCogdCkgewogICAgaW50IGksIG4gPSAqKChpbnQgKil0KTsKICAgIGZvciAoaSA9IG47IGkgPiAxOyBpLS0pCiAgICAgICAgbiA9IG4gKiAoaSk7IAogICAgcHJpbnRmKCJmYWN0b3JpYWwgb2YgJWQgPSAlZFxuIiwgKigoaW50ICopdCksIG4pOwogICAgcmV0dXJuIE5VTEw7Cn0KCmludCBtYWluKCkgewogICAgcHRocmVhZF90IHRocmVhZF9pZDsKICAgIGludCBuLCByZXQ7CiAgICBwcmludGYoIkVudGVyIG51bWJlcjogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkX2lkLCBOVUxMLCAmZmFjdCwgJm4pOyAKICAgIGlmIChyZXQgIT0gMCkgewogICAgICAgIHBlcnJvcigiRXJyb3IiKTsKICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICB9CiAgICBwdGhyZWFkX2V4aXQoMCk7Cn0K