#include <iostream>

using namespace std;

int main()
{
   //Faktoriális
   //Írassuk ki 1-től 15-ig a számok faktoriálisát
   //Int esetén csak a 12-ig pontos! 13-nál már túlcsordul
   //Double esetén nagyságrendileg pontos, de nem látjuk az összes értékes számjegyet
   //int64_t a 64 bites egész, azzal pontos 19!-ig
   //long long 8 byte hosszú egész

   cout<<"Faktorialist szamito program"<<endl;

   //int fakt=1;
   //cout<<"int merete:"<<sizeof(int)<<" byte\n";

   //double fakt=1;
   //cout<<"double merete:"<<sizeof(double)<<" byte\n";

   //int64_t fakt=1;
   //cout<<"int64_t merete:"<<sizeof(int64_t)<<" byte\n";

   long long fakt=1;
   cout<<"long long merete:"<<sizeof(long long)<<" byte\n";
 
   for(int i=1;i<=30;++i){
      fakt=fakt*i;
      cout<<i<<"! = "<<fakt <<endl;
   }
   return 0;
}