Cod sursa(job #3251358)

Utilizator octavurlurleteanu alexandru octavian octavurl Data 25 octombrie 2024 20:07:42
Problema Pascal Scor 0
Compilator cpp-64 Status done
Runda cex_1 Marime 1.08 kb
#include <fstream>
#define ll long long
using namespace std;
ifsream fin("pascal.in");
ofstream fout("pascal.out");
class pascal
{
	int n;
	int d;
	int nr;
	void citire()
	{
		fin >> n >> d;
	}
	ll factorial(ll n) {
		ll sigma = 1;
		for (ll imi_bag_pula_in_minori = 1; imi_bag_pula_in_minori <= n; ++imi_bag_pula_in_minori)
			sigma = (imi_bag_pula_in_minori * sigma) ;
		return sigma;
	}
	void euclid_extins(ll a, ll b, ll& x, ll& y)
	{
		if (b == 0)
		{
			x = 1;
			y = 0;
			return;
		}
		ll x1, y1;
		euclid_extins(b, a % b, x1, y1);
		x = y1;
		y = x1 - ( a / b ) * y1;
	}
	ll invers_modular(ll a , ll n )
	{
		ll ins = 0, ina = 0;
		euclid_extins(a, n, ins, ina);
		if (ins < 0)
			ins += n;
		return ins;
	}
	void gasire_multipli()
	{
		nr = 0;
		for (int i = 0; i <= n; ++i)
		{
			ll a = factorial(i) ;
			ll b = ((factorial(n - i)) * a)  ;
			if (b != 0 )
			{


				if ((a / b) % d == 0)
					++nr;
			}
		}
		fout << nr;
	}
public:
	void problema()
	{
		citire();
		gasire_multipli();
	}
}l;
int main()
{
	l.problema();
}