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 <algorithm>
#include <cmath>
#include <climits>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
#include <cassert>
#include <functional>

using namespace std;

#define LOG(...) printf(__VA_ARGS__)
//#define LOG(...)
#define FOR(i,a,b) for(int i=(int)(a);i<(int)(b);++i)
#define REP(i,n) for(int i=0;i<(int)(n);++i)
#define ALL(a) (a).begin(),(a).end()
#define RALL(a) (a).rbegin(),(a).rend()
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())
#define RSORT(c) sort((c).rbegin(),(c).rend())
#define CLR(a) memset((a), 0 ,sizeof(a))

typedef long long ll;
typedef unsigned long long ull;
typedef vector<bool> vb;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vb> vvb;
typedef vector<vi> vvi;
typedef vector<vll> vvll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int dx[] = { -1, 0, 1, 0 }; const int dy[] = { 0, 1, 0, -1 };


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

C++: #include <iostream>

using namespace std;

int main(int argc, char *argv[]) {
  int n;
  long result;
  cin >> n;
  result = n;

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

  cout << result << endl;
  return 0;
}

C++: #include <cstdio>

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

C++: #include <iostream>
#include <cmath>
using namespace std;
int main() {
  int a;
  while (cin >> a) {
  cout << tgamma(a+1) << endl;
}
  return 0;
}

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

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

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

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
#include <string>
#include <map>
#include <functional>
#include <cmath>
#include <cstdio>
using namespace std;

int ans = 1;

int Factional(int n){
  if(n == 1)return 1;
  else{
    return ans = n * Factional(n - 1);
  }
}

int main(){
  int n;
  cin >> n;
  Factional(n);
  cout << ans << endl;
}

C++: #include<iostream>

using namespace std;

unsigned long long int f(int n){
	if(n==1) return 1;
	else return n*f(n-1);
}

int main(){

	int n;

	cin >> n;

	cout << f(n) << endl;

	return 0;
}

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) {
    cout << kaijo(n) << endl;
  }
  return 0;
}

C++: #include <iostream>
//#include <fstream.h>
//#include <cstring>
using namespace std;

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

int main() {
  
  int n;

  cin >> n;

  cout << factorial(n);

  return 0;
}

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

unsigned long long fac(unsigned long long n)
{
    return n == 1 ? 1 : n * fac(n-1);
}

int main()
{
    unsigned long long n;
    cin >> n;
    cout << fac(n);
    return 0;
}

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

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

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

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

C++: #define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

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

ll calc(ll i){
  if(i==1) return 1;
  
  return i*calc(i-1);
}


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

C++: #include <iostream>

using namespace std;

int main(){
   
   int num,fact=1;

   cin>>num;

   for(int a=1;a<=num;a++)
   {
       fact = fact * a;
   }
 cout<<fact;

  return 0;
   
    
}

C++: #include <algorithm>
#include <vector>
#include <math.h>
#include <stdio.h>
#include <cctype>
#include <iostream>
#include <set>
#include <string>
#include <queue>
#include <map>
using namespace std;
int size(string x){
	string::size_type size=x.size();
	return size;
}
#define fu(l,k) for(int i=l;i<k;i++)
#define fd(l,k) for(int i=l;i>k;i--)
#define fi first
#define se second
typedef  vector<string> vs;
typedef  vector<int> vi;
double pi(){
	return M_PI;
}
typedef set<int> set_i;
typedef set<string> set_s;
int main(){
	int n,ans=1;
	cin>>n;
	fd(n,0){
		ans*=i;
	}
	cout<<ans<<endl;
}

C++: #include <iostream>
#include <stdio.h>
using namespace std;
int main(){
    int n;
    double x=1;
    cin >> n;
    for (int i=1;i<=n;i++){
        x*=i ;
    }
    // cout << x << endl;
    printf("%g",x);
}

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

int main(int argc, char **argv)
{
 int n, tmp;
 while(cin >> n){
 tmp = 1;
 while(n > 1){
  tmp *= n;
  n--;
 }
 cout << tmp << endl;
 }
 return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define REP(i, j) for(int i = 0; i < j; i++)
#define FOR(i, j, k) for(int i = j; i < k; i++)
const int N = 5;

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

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

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

//0019
int main(){
	long long int x, f;

	cin >> x;
	f=x;
	while(--x){
		f*=x;
	}
	cout << f <<endl;
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

int solve(int x){
  if(x == 0) return 1;
  return x * solve(x - 1);
}

int main(){

  int n;

  cin >> n;

  cout << solve(n) << endl;

}

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

int64_t factorial( int64_t n ) {
	return n > 1 ? n*factorial( n-1 ) : n;
}

int main() {
	ios_base::sync_with_stdio( false );

	int n;
	cin >> n;

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

C++: #include<iostream>

using namespace std;

unsigned long long int f(int n){
	if(n==1) return 1;
	else return n*f(n-1);
}

int main(){

	int n;

	cin >> n;

	cout << n << "!=" << f(n);

	return 0;
}

C++: #include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;

float factorial(float n);

int main()
{
    long long n;
    
    do
    {
    cout<< "Enter value : " ;
    cin >> n;
    
    }while(n>20);
    
    cout<< factorial(n) << endl;
    
    return 0;
}

float factorial(float n)
{
    int x;
    long long sum=1;
    for(x=1; x<=n; x++)
    {
       sum = sum*x;
    }
    return sum;
}

C++: #include <iostream>
unsigned int factorial(int i)
{
  if (i <= 1) return 1;
  else        return i * factorial(i - 1);
}
int main()
{
  int n;
  std::cin >> n;
  std::cout << factorial(n) << std::endl;
  return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
long long x=1;
int s;
cin>>s;
while(s==1){
x*=s;
s--;
}
cout<<x<<endl;
return 0;
}

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

C++: #include <iostream>
#include <algorithm>
#include <cctype>
#include <cstdio>
#include <math.h>
using namespace std;

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