Go: package main

import (
	"bufio"
	"os"
	"strconv"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func nextInt() int {
	scanner.Scan()
	i, e := strconv.Atoi(scanner.Text())
	if e != nil {
		panic(e)
	}
	return i
}

func factorial(n int) int {
	if n == 1 {
		return 1
	}
	return n*factorial(n-1)
}
func main() {
	scanner.Split(bufio.ScanWords)
	n := nextInt()
	fmt.Println(factorial(n))
}

C++: #include <iostream>

using namespace std;

int main()
{
    int y;
    long long int x = 1;
    cin >> y;

    while(y != 1)
    {
        x = x*y;
        y--;
    }
    cout << x << endl;
}

C++: #include<iostream>
using namespace std;



main(){

  long long int n,i;
  long  long int out;

  

  cin >> n;
  out = 1;
  for(i=n;i>0;i--){
    
    out *= i;

  }

  cout << out << endl;

  return 0;
  
}

C++: #include <iostream>
using namespace std;

int main() {
	int n,ans = 1;
	cin >> n;
	if (n <= 20 && n >= 0) {
		for (int a = 1; a <= n; a++) {
			ans = ans*a;
		}
		cout << ans << endl;
	}
}

C++: #include <iostream>

using namespace std;

int Factorial(int x)
{
    if(x == 1)
    {
        return x;
    }
    else
    {
        x = x*Factorial(x-1);
    }

}

int main()
{
    int y;

    cin >> y;

    cout << Factorial(y) << endl;
}

C++: #include <iostream>
#include <string>

using namespace std;

int main()
{

  int n,i;
  string out;
  cin >> n;

  switch(n){
    case 1:
      out = "1";
      break;
    case 2:
      out = "2";
      break;
    case 3:
      out = "6";
      break;
    case 4:
      out = "24";
      break;
    case 5:
      out = "120";
      break;
    case 6:
      out = "720";
      break;
    case 7:
      out = "5040";
      break;
    case 8:
      out = "40320";
      break;
    case 9:
      out = "362880";
      break;
    case 10:
      out = "3628800";
      break;
    case 11:
      out = "39916800";
      break;
    case 12:
      out = "479001600";
      break;
    case 13:
      out = "6227020800";
      break;
    case 14:
      out = "87178291200";
      break;
    case 15:
      out = "1307674368000";
      break;
    case 16:
      out = "20922789888000";
      break;
    case 17:
      out = "355687428096000";
      break;
    case 18:
      out = "6402373705728000";
      break;
    case 19:
      out = "121645100408832000";
      break;
    case 20:
      out = "2432902008176640000";
      break;
  }
  cout << out <<endl;
  return 0;
}

C++: #include<iostream>
#include<queue>
#include<string>
#include<stack>
#include<cstdio>
#include<algorithm>

using namespace std;

int main(void)
{
  int i;
  int n;
  long long int sum=1;

  cin>>n;

  for(i=1;i<=n;i++)
    {
      sum*=i;
    }

  cout<<sum<<endl;

}

C++: #include <iostream>
using namespace std;
int main(){
	int x=1 , n , i;
	cin >> n ;
	for( i=1 ; i<=n ; i++ ){
		x = i*x ;
	}
	cout << x << endl;
}

C++: #include<string>
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
	int n;
	int ans = 1;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		ans *= i;
	}
	cout << ans<<endl;
}

C++: #include <iostream>
using namespace std;
int main(){
    int n;
	cin >> n;
    int x = 1;
    for(int i=0; i<n; ++i){
		x = x*(i+1);
    }
    cout << x << endl;
}

C++: #include<iostream>
using namespace std;
int main(){
  int n;
  long long sum = 1;
  for(int i=1; i<=n; i++){
    sum*=i;
  }
  sout <<sum<<endl;
  return 0;
}

C++: #include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;++i)
#define rrep(i,n) for(int i=n-1;i>=0;--i)
#define yesno(flg) if(flg){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}
#define MAX_N 1002
#define i197 1000000007

using namespace std;
typedef long long ll;
typedef pair<ll,ll> P1;
typedef pair<int,int> Pi;
typedef pair<double,Pi> Pdi;
typedef pair<ll,int>Pli;
typedef pair<P1,ll> P2;
typedef pair<string,string> Ps;
const ll INF=1000000000000000001;
struct edge{int to,cost;};
int dy[]={0, 0, 1, -1};
int dx[]={1, -1, 0, 0};
struct Road{double cost;int a,b;};
struct pos{
	// 1 変数を入れる;
	int x,y,sx,sy,cost;
};

int main() {

	int n;
	cin>>n;

	ll a=1;
	for(int i=2; i<n+1; i++)a*=i;
	cout<<a<<endl;
	return 0;
}

C++: #include <stdio.h>
long long fact(long long n){ return n>0 ? fact(n-1)*n : 1LL; }
int main(){
  long long n;
  scanf("%lld",&n);
  printf("%lld\n",fact(n));
  return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(void){
    ll n, x=1;
    cin >> n;
    for(ll i=n; i>=1; i--){
        x*=i;
    }
    cout << x << "\n";
}

C++: #include <iostream>
using namespace std;

int main(){
int n;
while(cin >> n){
for(int i=1;n<1;n--)
i *= n;
cout << i;
}
return 0;
}

C++: #include <iostream>
using namespace std;

int factorial(int x) {

  if(x != 1)
    return x * factorial(x-1);
  else if(x == 1)
    return 1;
}

int main() {
  int a;
  cin >> a;
  cout << factorial(a) << endl;
}

C++: #include <iostream>
using namespace std;

int fact(int);

int main()
{
	int n;
	cin >> n;
	cout << fact(n) << endl;
	return 0;
}

int fact(int n)
{
	if (n > 0)
	{
		return n*fact(n-1);
	}
	else{
		return 1;
	}
}

C++: #include <iostream>
#include <cstring>
using namespace std;
#define N 300
int a[N+1];
int main()
{
    int n; cin >> n;
    memset(a, 0, sizeof(a));
    a[0] = 1;
    for (int i=2; i<=n; ++i) {
        for (int j=0; j<N; ++j) a[j] *= i;
        for (int j=0; j<N; ++j) {
            a[j+1] += a[j] / 10;
            a[j] %= 10;
        }
    }
    int k=N;
    while (a[k] == 0) k--;
    for (int i=k; i>=0; --i) cout << a[i]; cout << endl;
    return 0;
}

C++: #include <cstdio>

int main(int argc, char *argv[]) {
	int rcv;
	fscanf(stdin, "%d", &rcv);
	unsigned long long a = 1ULL;
	for (int i = 2; i <= rcv; i++) {
		a *= i;
	}
	printf("%lld\n", a);
	return 0;
}

C++: int factorial(int n) {
    int answer = 1;

    for (int i = n; i != 0; i--) {
            answer *= i;
    }

    std::cout << answer << std::endl;
}

C++: #include<stdio.h>

int main(void)
{
	int n,i;
	long long int sum;

	sum=1;

	scanf("%d",&n);

	for(i=1;i<=n;i++){
		sum*=1;
	}
	
	printf("%lld\n",sum);

	return 0;
}

C++: #include <iostream>
#include <cstdio>

using namespace std;

long long fact (int n)
{
    if (n == 0)
        return 1;
    else
        return n*(fact(n-1));
}

int main()
{
    int n;
    cin >> n;
    long long result = fact(n);
    cout << result << endl;
    return 0;
}

C++: #include <iostream>
using namespace std;

int factorial(int n){
	int s = 1;
	while (n){
		s *= n--;
	}
	return s;
}

int main(void){
	int n;
	cin>>n;
	cout<<factorial(n)<<endl;
	return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	int n;
	long long ans = 1;
	cin >> n;
	for (int i = 1; i <= n; i++)
		ans = ans * i;
	cout << ans << endl;
	return 0;
}

C++: #include <iostream>
using namespace std;

int main() {
	int n; cin >> n;
	if (n<1) n=1;
	else if (n>20) n=20;
	int ans=1;
	for (int i=n; i>0; i--) ans *= i;
	cout << ans << endl;
	return 0;
}

C++: #include<stdio.h>
int main()
{
    int i,n,j=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        j=j*i;
    }
    printf("%d\n",j);
    return 0;
}

C++: #include <iostream>
using namespace std;

int main() {
int n,sum=1;
cin>>n;
for(int k=1;k<=n;k++){
	sum=sum*k;
}
cout<<sum<<endl;

	return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
	int n; cin >> n;
	int res = n;
	while (n--&&n) res *= n;
	cout << res << endl;

	return 0;
}

C++: #include<stdio.h>
#include <string>
#include <iostream>
using namespace std;


int factorial_loop(long long n);

int main(void)
{
long long n;
long long result1;


cin>>n;

if(0<n&&n<21) ;
else return 0;

	result1 =factorial_loop(n);

	cout<<result1;
	return 0;

}
int factorial_loop(long long n) {
    long long result = 1;
    long long k;

    for(k = 1; k <= n; k++) {
        result *= k;
		cout<<k<<" , "<<result<<endl;
    }
    return result;
}