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>
using namespace std;

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

C++: #include<iostream> 

using namespace std;

// int型に収まりきらないので変えた。
// 正しい型を書くのが面倒になったのでテンプレートで型推論させる。
template<typename T>
T func(T x) {
	return x <= 1 ? 1 : x * func(x - 1);
}

int main() {
	long long n;

	cin >> n;

	cout << func(n) << endl;

	return 0;
}

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

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

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

int main(){
  long long a[21],b;
  a[1]=1;
  for(int i=2;i<20;i++)a[i]=a[i-1]*i;
  cin>>b;
  cout<<a[b]<< endl;
  return 0;
}

C++: #include <stdio.h>

int fac(int n)
{
    int i,f=1;
    for(i=2;i<=n;i++)
    {
        f*=i;
    }
    
    return f;
}

int main(void)
{
    int n;
    
    scanf("%d",&n);
    printf("%d\n",fac(n));
    
    return 0;
}

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

int main() {
int N;
cin >> N;
long long res = 1;
for (auto i=1; i<=N; i++) {
res *= N;
}
cout << res << endl;
}

C++: #include<iostream>



int input=0;

void factorial(int& i__)
{
	int result=1;
	for(int i=i__;i>0;i--)
	{
		result*=i;
	}

	std::cout<<std::endl<<result<<std::endl;

}

int main()
{
	while(input>20)
	{	
		std::cin>>input;
		factorial(input);
	}


	return 0;
}

C++: #include <iostream>

unsigned long long Fact(unsigned long long n);

int main()
{
	unsigned long long n, ans = 1;


	while (std::cin >> n)
	{
		ans = Fact(n);

		std::cout << ans << std::endl;
	}
}

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

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

int main(void){
    long n, x;
    cin >> n;
    x = 1;
    while(n != 1){
        x *= n;
        n--;
    }
    cout << x << endl;

    return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <vector>
#include <list>
#include <algorithm>
#include <cmath>
#include <stack>
#include <set>
using namespace std;

#define REP(i,n) for(int (i)=0; (i)<(n); (i)++)
#define FOR(i,a,b) for(int (i)=(a); (i)<(b); (i)++)
#define PUSH(n,v) for(int i=0; i<(n); i++) {int j; cin >> j; v.push_back(j);}
#define ALL(v) v.begin(), v.end()

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

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

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

int fac(long long x) {
	if (x == 0ll)
	{
		return 1;
	}
	else
	{
		return x*fac(x - 1);
	}
}

int main()
{
	long long n;
	cin >> n;
	cout << fac(n) << endl;
}

C++: #include<iostream>
 #include<cstdio>
  using namespace std;
  int fact(int n1){
    if (n1==0)
    return 1;
    else 
    return n1*fact(n1-1);
}
 int main(void)
 {
     int n;
    scanf("%d",&n);

       printf("%d\n",fact(n));

          return 0; }

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

int main () {
    int n, a=1,i;
    cin >> n:
    for(i=n;i>1;i--) {
        a *= n;
    }
    cout << a << endl;
}

C++: p (1..gets.to_i).inject(:*)

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

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

int main(){
  int a;
  scanf("%d", &a);
  printf("%lld\n", ans[a - 1]);
  return 0;
}

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

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

C++: #include<iostream>

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

int main() {
	int input;
	while (std::cin >> input) {
		std::cout << fac(input) << std::endl;
	}
	return 0;
}

C++: /*
    ????????°??§???????????¨????????????
*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <limits.h>
#include <float.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <iterator>
#include <vector>
#include <map>
#include <utility>
#define LLU unsigned long long int
#define LL long long int
#define LD long double
using namespace std;
#define Lfmax DBL_MAX
#define LLUmax ULLONG_MAX
#define LLmax LLONG_MAX
#define dmax INT_MAX
#define vd vector<int>
#define vLL vector<long long int>
#define vLLU vector<unsigned long long int> 
#define pb push_back
#define mp make_pair
#define fi first
#define sec second
#define debug printf("asd\n")
#define debugd(a) printf("--%d\n",a)
#define debugdd(a,b) printf("--%d %d\n",a,b)
#define debugarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i]);printf("\n")
#define newline printf("\n")
#define forin(a,b,c) for(int a=b ; a<c ; a++)
#define forde(a,b,c) for(int a=b ; a>=c ; a--)


inline void scd(int &a){scanf("%d",&a);}
inline void scdd(int &a,int &b){scanf("%d %d",&a,&b);}
inline void sctd(int &a,int &b,int &c){scanf("%d %d %d",&a,&b,&c);}
inline void scdlld(LL &a,LL &b){scanf("%I64d %I64d",&a,&b);}
inline void sclld(LL &a){scanf("%I64d",&a);}

#define scarrd(a,b) for(int index=0 ; index<b ; index++)scanf("%d",&a[index])
#define prdlld(a,b) printf("%I64d %I64d",a,b)
#define prdd(a,b) printf("%d %d",a,b)
#define prd(a) printf("%d",a)
#define prarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i])
#define iniarr(a,b) for(int i=0 ; i<b ;i++)a[i]=0
#define arr(a,b) int *a=(int *)malloc(b*sizeof(int))
#define llarr(a,b) long long int *a=(long long int *)malloc(b*sizeof(long long int))
#define st(a,b) char *a=(char *)malloc(b*sizeof(char))
#define grav 9.8
#define pi 3.14159265

LL fc[200000];

LL fact(LL a)
{
	if(fc[a]>0)
	return fc[a];
	
	if(a<=1)
	return 1;
	
	fc[a]=a*fact(a-1);
	
	return fc[a];
	
	
}

int main()
{
	iniarr(fc,200000);
	LL n;
	sclld(n);
	printf("%lld\n",fact(n));
	return 0;
}

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

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

C++: #include <bits/stdc++.h>
#include <vector>
using namespace std;
int f(int a){
	if(a == 0 || a == 1)
		return 1;
	else
		return a * f(a-1);
}
int n;
int main(){
	cin >> n;
	cout << f(n);
	
	return 0;
}

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

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

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

C++: #include<iostream>

using namespace std;

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

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

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