Find the first n digits of the square root of a number
Python, 143 chars

m,n=map(int,raw_input().split())
d=10**m
n*=d*d
a=0
b=n
while a&lt;b-1:c=(a+b)/2;a,b=[[c,b],[a,c]][c*c&gt;n]
print('%d.%0*d'%(a/d,m,a%d))[:m+(a/d&lt;d)]


Computes the answer by multiplying n by 10^2m, doing an integer square root (using binary search), then "dividing" the result by 10^m.