human
Compute nCr % p | Set 1 ( Introduction and Dynamic Programming Solution ) | Returns nCr % p.
Optimization for the cases when r is large compared to n - r.
The array C is going to store last row of pascal triangle at the end . And last entry of last row is nCr ..
Top row of Pascal Triangle.
One by constructs remaining rows of Pascal Triangle from top to bottom.
Fill entries of current row using previous row values.
nCj = ( n - 1 ) Cj + ( n - 1 ) C ( j - 1 ).
Driver Program"
How can the above be solved in Python?
 ... Write me a code to compute nCr % p and the other steps required?
assistant
#Here is code to compute nCr % p and the other steps required.
 def nCrModp ( n , r , p ) :
	if ( r > n - r ) :
		r = n - r
	C = [ 0 for i in range ( r + 1 ) ]
	C [ 0 ] = 1
	for i in range ( 1 , n + 1 ) :
		for j in range ( min ( i , r ) , 0 , - 1 ) :
			C [ j ] = ( C [ j ] + C [ j - 1 ] ) % p
	return C [ r ]
n = 10
r = 2
p = 13
print ( ' Value ▁ of ▁ nCr ▁ % ▁ p ▁ is ' , nCrModp ( n , r , p ) )