diff --git a/coin change.py b/coin change.py new file mode 100644 index 0000000..73c38e3 --- /dev/null +++ b/coin change.py @@ -0,0 +1,14 @@ +# PROGRAM TO FIND MINIMUM NUMBER OF COINS NEEDED TO MAKE A CERTAIN AMOUNT................ + +def coinChange(centsNeeded,coinValues): + minCoins=[[0 for j in range(centsNeeded+1)] for i in range(len(coinValues))] + minCoins[0]=range(centsNeeded+1) + for i in range(1,len(coinValues)): + for j in range(0,centsNeeded+1): + if j"," > ".join(attr) + +parser = MyHTMLParser() + +html = "" +for i in range(int(raw_input())): + html += raw_input() + html += '\n' + + +parser.feed(html) diff --git a/factorial.py b/factorial.py new file mode 100644 index 0000000..5c6748a --- /dev/null +++ b/factorial.py @@ -0,0 +1,27 @@ +t=input() +while t>0: + t-=1 + le=0 + fact=[0]*(100001) + fact[0]=1 + m=input() + for k in range(2,m+1): + r=0 + arr=[0]*(100001) + for i in range(le+1): + arr[i]=fact[i] + for i in range(le+1): + fact[i]=(arr[i]*k+r)%10 + r=(arr[i]*k+r)/10 + i+=1 + if r!=0: + while r!=0: + fact[i]=r%10 + r/=10 + i+=1 + le=i-1 + x=((fact[:le+1])[::-1]) + for i in range(len(x)): + x[i]=str(x[i]) + print ''.join(x) + diff --git a/gcd_n_nos.py b/gcd_n_nos.py new file mode 100644 index 0000000..43857ed --- /dev/null +++ b/gcd_n_nos.py @@ -0,0 +1,17 @@ +def gcd(x,y): + while(y!=0): + temp=x%y + x=y + y=temp + return x +def gcd_n(l): + if(len(l)>=2): + x=gcd(l[0],l[1]) + for i in range(2,len(l)): + x=gcd(x,l[i]) + return x + else: + return l[0] +'''l=list(map(int,raw_input().split())) +print gcd_n(l) +''' diff --git a/knapsack.py b/knapsack.py new file mode 100644 index 0000000..a6d8714 --- /dev/null +++ b/knapsack.py @@ -0,0 +1,17 @@ +def knapsack(W,wt,val,n): + k=[] + for i in range(n+1): + k.append([0]*(W+1)) + for i in range(n+1): + for w in range(W+1): + if i==0 or w==0: + k[i][w]=0 + elif wt[i-1]<=w: + k[i][w]=max(k[i-1][w],val[i-1]+k[i-1][w-wt[i-1]]) + else: + k[i][w]=k[i-1][w] + return k[n][W] +val=[60,100,120] +wt=[10,20,30] +W=50 +print knapsack(W,wt,val,len(val)) diff --git a/lcs.py b/lcs.py new file mode 100644 index 0000000..3ba110f --- /dev/null +++ b/lcs.py @@ -0,0 +1,25 @@ +def lcsd(x,y): + m=len(x) + n=len(y) + global c + c=[] + for j in range(n+1): + c.append([0]*(m+1)) + for i in range(1,m+1): + for j in range(1,n+1): + if x[i-1]==y[j-1] : + c[j][i]=str(c[j-1][i-1])+str(x[i-1]) + + else: + c[j][i]=max(str(c[j-1][i]),str(c[j][i-1])) + + return c[n][m] + + + + +a=raw_input() +b=raw_input() +m=lcsd(a,b) +ff=m.replace('0','') +print ff,len(ff) diff --git a/lcs_n_numbers.py b/lcs_n_numbers.py new file mode 100644 index 0000000..38f25df --- /dev/null +++ b/lcs_n_numbers.py @@ -0,0 +1,28 @@ +def lcsd(x,y): + m=len(x) + n=len(y) + global c + c=[] + for j in range(n+1): + c.append([['@']]*(m+1)) + for i in range(1,m+1): + + for j in range(1,n+1): + if x[i-1]==y[j-1] : + c[j][i]=list(c[j-1][i-1]) + c[j][i].append((x[i-1])) + + else: + if len(c[j-1][i])>=len(c[j][i-1]): + c[j][i]=list(c[j-1][i]) + else: + c[j][i]=list(c[j][i-1]) + return c[n][m] + +a=list(map(int,raw_input().split())) +b=list(map(int,raw_input().split())) +m=lcsd(a,b) +for i in m: + if(i!='@'): + print i, + diff --git a/ncrmodm.py b/ncrmodm.py new file mode 100644 index 0000000..b6b881e --- /dev/null +++ b/ncrmodm.py @@ -0,0 +1,11 @@ +def modinv(a,m): + return pow(a,m-2,m) +def nCrmodm(n,k,m): + num=1 + for i in range(k): + num=(num*(n-i))%m + den=1 + for i in range(1,k+1): + den=(den*i)%m + return (num*modinv(den,m))%m +print nCrmodm(5,2,pow(10,9)+7) diff --git a/pow(a,-b,x).py b/pow(a,-b,x).py new file mode 100644 index 0000000..5153019 --- /dev/null +++ b/pow(a,-b,x).py @@ -0,0 +1,26 @@ +L = 10**6 +# sieve of Eratosthenes +primes = [] +is_prime = [False]*2 + [True]*(L-1) +for p in xrange(2,L+1): + if is_prime[p]: + primes.append(p) + for n in xrange(2*p,L+1,p): + is_prime[n] = False +# calculate Euler's totient function +phi = [0]*(L+1) +for n in xrange(1,L+1): + phi[n] = n +for p in primes: + for n in xrange(p,L+1,p): + phi[n] -= phi[n]/p +t=input() +while t>0: + t-=1 + a,b,x=map(int,raw_input().split()) + if b<0: + ans=pow(a,phi[x]-1,x) + print pow(ans,-b,x) + else: + print pow(a,b,x) + diff --git a/prime summations.py b/prime summations.py new file mode 100644 index 0000000..e6c7de2 --- /dev/null +++ b/prime summations.py @@ -0,0 +1,16 @@ +def primes_sieve(n): + sieve=[True]*n + for i in xrange(3,int(n**0.5)+1,2): + if sieve[i]: + sieve[i*i::2*i]=[False]*((n-i*i-1)/(2*i)+1) + return [2] + [i for i in xrange(3,n,2) if sieve[i]] +t=input() +for ii in range(t): + n=input() + primes=primes_sieve(n+1) + ways=[0 for i in range(n+1)] + ways[0]=1 + for i in range(len(primes)): + for j in range(primes[i],n+1): + ways[j]+=ways[j-primes[i]] + print ways[n] diff --git a/prime.py b/prime.py new file mode 100644 index 0000000..1f52e66 --- /dev/null +++ b/prime.py @@ -0,0 +1,24 @@ +def main(m, n): + primes = [False for x in xrange(n-m+1)] + p = 2 + while p*p <= n: + r = m / p + r *= p + for j in xrange(r, n+1, p): + if j != p and j >= m: + primes[j-m] = True + p += 1 + + for i in xrange(n-m+1): + if not primes[i] and m+i != 1: + print m + i + + +if __name__ == "__main__": + t = int(raw_input()) ## nb of test cases + + for k in xrange(t): + m, n = map(int, raw_input().split()) + main(m, n) + if k < t-1: + print "" diff --git a/prime_best.py b/prime_best.py new file mode 100644 index 0000000..c2cdeea --- /dev/null +++ b/prime_best.py @@ -0,0 +1,50 @@ + +#fastest and calculates prime number below n +def primes_sieve_best(n): + sieve=[True]*n + for i in xrange(3,int(n**0.5)+1,2): + if sieve[i]: + sieve[i*i::2*i]=[False]*((n-i*i-1)/(2*i)+1) + return [2] + [i for i in xrange(3,n,2) if sieve[i]] +def prime_biggy(n): + biggy=[1]*(n+1) + for i in xrange(2,int(n**0.5) + 1): + if biggy[i]==1: + j=2 + while j*i<=n: + if biggy[j*i]==1: + biggy[j*i]=0 + j+=1 + biggy2=[] + for i in range(2,n+1): + if biggy[i]==1: + biggy2.append(i) + return biggy2 +print len(prime_biggy(1000000)) +''' +# from m to n +def main(m, n): + primes = [False for x in xrange(n-m+1)] + p = 2 + while p*p <= n: + r = m / p + r *= p + for j in xrange(r, n+1, p): + if j != p and j >= m: + primes[j-m] = True + p += 1 + + for i in xrange(n-m+1): + if not primes[i] and m+i != 1: + print m + i + + +if __name__ == "__main__": + t = int(raw_input()) ## nb of test cases + + for k in xrange(t): + m, n = map(int, raw_input().split()) + main(m, n) + if k < t-1: + print "" +'''