First Part: use p = 1847, a = 2, b = 3 to construct E = EllipticCurve(GF(p),[2,3]). The base point we use is bP = (544, 1008, 1). We used a secret x to calculate x*bP = (1026, 1063, 1). Find x.
Second Part: the exact same problem, bigger numbers. Use p = 1234537, a = 0, b = -3 to construct E = EllipticCurve(GF(p),[a,b]). The base point we use is bP = (515587 : 108882 : 1). We used a secret x to calculate x*bP = (887253 : 796839 : 1). Find x.
Third Part: simple enough: build Curve25519 (see below). Now find x satisfying:
x*basePoint = (39618542331471271078506952533251064974422316633069502446016421210863527597401,8886436400692676108333410090681409044615197426581355126822786730872051576638,1)
About Curve25519: this curve is given in Montgomery Form (we usually use short Weierstrass form). The defining equation is y^2 = x^3 + Bx^2 + Ax. Here's what you need to do to build it in sage:
p = 2^255-19
A = 486662
B = 1
Curve25519 = EllipticCurve(GF(p), [0, A, 0, B, 0])
basePoint = curve25519(9,14781619447589544791020593568409986887264606134616475288964881837755586237401, 1)