Faktoriyel uygulaması yaptım ancak 16 dan sonra eksi sonuç veriyor sebebi nedir acaba



package merhabadunya;
import java.util.Scanner;

public class Merhabadunya {


public static void main(String[] args) {
Scanner scan = new Scanner(System.in);

System.out.println("Sayıyı giriniz:");
int sayı=scan.nextInt();
int faktoriyel = 1;
while(sayı>0){

faktoriyel*=sayı;
sayı--;
}
System.out.println(faktoriyel);


}

}