Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func nextInt() int {
	n, err := strconv.Atoi(nextString())
	if err != nil {
		fmt.Printf("strconv.Atoi failed: %v\n", err)
	}
	return n
}

func main() {
	scanner.Split(bufio.ScanWords)

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

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;
}

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

__int64 fact(int num);
int input_int();

int main()
{
	cout << fact(input_int()) << endl;
	return (0);
}

__int64 fact(int num) { return ((num == 1) ? 1 : fact(num - 1) * num); }

int input_int(void)
{
	int in;
	cin >> in;
	return (in);
}

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

using namespace std;

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

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

C++: #include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
// int is too small for this calcuration
// so i used long.
// have a nice hhk!!

int main()
{
    unsigned long n;
    unsigned long ans = 1;
    cin >> n;
    for(int c = n; c > 1; c--)
    {
        ans *=c;
    }
    cout << ans << endl;
    return EXIT_SUCCESS;
}

C++: #include <stdio.h>

int main()
{
	int n;
	long x;

	x = 1;

	scanf("%d", &n);

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

	printf("%ld\n", x);

	return 0;
}

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

using namespace std;

unsigned long long fac(int n) {
	if (n == 1 || n == 0) return 1;
	return fac(n - 1) * n;
}

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

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;
}

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

using namespace std;

int main()
{

  int n,i,temp;
  cin >> n;
  temp = n;
  
  for(i=1;i<temp;i++){
    n = n * (temp-i);
  }
  
  cout <<n<<endl;

  return 0;
}

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

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

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

int main(){
  int n,i;
long long asn;

  while(cin >> n){

  ans=1;
  for(i=0;i<n;i++){
    ans=ans*(n-i);

  }
 
    cout << ans << endl;
  }

}

C++: #include<stdio.h>

int n;
long long output=1;

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