Go: package main

import "fmt"

func main() {
	var n int
	fmt.Scan(&n)

	rs := 1
	for i := 1; i <= n; i++ {
		rs *= i
	}
	fmt.Println(rs)
}

C++: #include <iostream>
#include <iomanip>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <bitset>
#include <stack>
#include <utility>
#include <numeric>
#include <algorithm>
#include <functional>
#include <complex>
#include <string>
#include <sstream>

#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cstring>

using namespace std;

#define all(c) c.begin(),c.end()
#define rep(i,n) for(int i=0;i<(int)n;i++)
#define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << endl

typedef long long ll;
typedef vector<int> vi;

template<typename T>
ostream& operator<<(ostream& os,const vector<T>& val){
    os << "[ ";
    for(typename vector<T>::const_iterator it=val.begin();
        it != val.end();++it){
        os << *it << " ";
    }
    os << "]";
    return os;
}

ll fact(ll n){
    if(n == 1) return 1;
    else return n * fact(n-1);
}

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

C++: #include <cstdio>

using namespace std;

int main() {
    int n;
    scanf("%d", &n);

    long long res=1;
    for (int i=1; i<=n; ++i)
        res *= i;

    printf("%lld\n", res);
    return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	int n;
	unsigned long long int re = 1;
	
	cin >> n;
	while(n >= 2) {
		re *= n;
		n--;
	}
	
	cout << re << endl;
	
	return 0;
	
}#include <iostream>

using namespace std;

int main() {
	int n;
	int re = 1;
	cin >> n;
	while(n >= 2) {
		re *= n;
		n--;
	}
	
	cout << re << endl;
	
	return 0;
	
}

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

typedef long long ll;

ll memo[21];

ll fact( int n ) {
  if ( memo[n] != -1 ) return memo[n];
  if ( n <= 1 ) return 1;
  return memo[n] = n * fact(n-1);
}

int main() {
  memset(memo,-1,sizeof(memo));
  int n; cin >> n;
  ll ret = fact(n);
  cout << ret << endl;
  return 0;
}

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

int main() {
	int n,a;
	cin>>n;
	a = n;
	while(true){
		n = n-1;
		if (n == 0)break;
		a = a*n;
	}cout<<a<<endl;
}

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

using namespace std;

string ns[]={"1","1","2","6","24","120","720","5040","40320","362880","3628800","39916800","479001600","6227020800","87178291200","1307674368000","20922789888000","355687428096000","6402373705728000","121645100408832000","2432902008176640000"};

int main(){
  int n;
  cin >> n;
  cout << ns[n] << endl;
}

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

C++: // Template Meta Programing
#include <iostream>
template <long long N> struct factorial {
    static const long long value = N * factorial<N-1>::value;
};
template <> struct factorial<0> {
    static const long long value = 1;
};
int main()
{
    long long n = factorial<20>::value;
    std::cout << n;
}

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

int main() {
	int x, ans=1;
	cin >> x;
	for (int i = 2; i <= x; i++) {
		ans *= i;
	}
	cout << ans;
}

C++: #include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


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

int main(){

	int n;
	while(cin>>n)
		cout<<fuc(n)<<endl;


	return 0;
}

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

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

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

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

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

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

C++: #include <iostream>

using namespace std;

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

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

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

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

C++: #include <iostream>
using namespace std;
 
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0019

int main() {
	int d;
	cin >> d;
	int sum = 1;
	while (d > 1) sum *= d--;
	cout << sum << endl;
	return 0;
}

C++: //  0019.cpp

#include <cstdio>
#include <cmath>

using namespace std;


int main(){
    int n,a=1;
    
    scanf("%d",&n);
    
    for(int i=1;i<=n;i++)
        a *= i;
    
    printf("%d\n",a);
    
    
    return 0;
}

C++: #include <stdio.h>
#include <iostream>

using namespace std;

int main() {
	int a;
	int seki[20] = {1};
	int l;

	cin >> a;

	for (int i = 1; i <= a; i++) {
		for (int j = 0; j < 20; j++) {
			seki[j] *= i;
		}

		for (int j = 0; j < 20; j++) {
			if (seki[j] >= 10) {
				seki[j+1] += seki[j] / 10;
				seki[j] = seki[j] % 10;
			}
		}
	}

	for (int i = 20; i >= 0; i--) {
		if(seki[i] != 0) {
			l = i;
			break;
		}
	}

	for (int k = l; k >= 0; k--) {
		cout << seki[k];
	}

	cout << endl;

	return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
int main(){
    ll n,ans=1;
    cin >> n;
    while(n--){
        ans*=n;
    }
    cout << n << endl
    return 0;
}

C++: #include <iostream>

using namespace std;

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

C++: #include<iostream>
main(){long n,i;std::cin>>n;for(i=n;--n;)i*=n;std::cout<<i;}

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

int main(){
	int n;
	long long pro =1;
	vector<int> array;
	cin >> n;
	for(int i = n; i > 0; i--){
			array.push_back(i);
	}
	for(int i = 0; i < array.size(); i++){
		pro *= array[i];
	}
	cout << pro << endl;
	return 0;
}

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

int main() {
	// your code goes here
	int n;
	cin>>n;
	long i,s=1;
	for(i=1;i<=n;i=i+1){
		s=s*i;
	}
	cout<<s<<endl;
	return 0;
}

C++: #include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define all(a)  (a).begin(),(a).end()
#define vi vector<int>
#define pb push_back
#define INF 999999999


//??????
ll factmemo[25]={1};
ll fact(int n){
    if(factmemo[n]!=0)return factmemo[n];
    return factmemo[n] = n*fact(n-1);
}

int main(){
    int n;
    cin>>n;

    cout<<fact(n)<<endl;
}

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

int kaijo(int n) {
  int ans = 1;
  for(int i = n; i > 0; i--) {
    ans *= i;
  }
  return ans;
}

int main(void) {
  int n;
  while(cin >> n) {
    if(n == 20) cout << kaijo(19)*2 << "0" << endl;
    else       cout << kaijo(n) << endl;
  }
  return 0;
}

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

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

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

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

int main(){
    int num;
    unsigned int factorial=1;
    cin >> num;
    for(;num > 0; num--){
        factorial *= num;
    }
    cout << factorial;
    return 0;
}