#include <stdio.h>

int main(void)
{
int n ;
int a ;
int b ;
double e ;

n = 2 ;
e = 1 ;

while( n <= 10 ){
a = n ;
b = n - 1 ;
while( b >= 1){
a = a * b ;
b = b - 1 ;
}
n = n + 1 ;
e = e + 1/a ;

}
printf("%lf", e) ;
}

自然対数の近似値を求めるためのプログラムなんですがe=1と出てしまいます。
1/a が0になってしまっているんでしょうか?どこが間違っているか教えてください。よろしくお願いします