public class EllipticCurve { public long a; public long b; public long p; public EllipticCurve(long a, long b, long p) { this.a = a; this.b = b; this.p = p; } public EllipticCurve(EllipticCurve E) { this.a = E.a; this.b = E.b; this.p = E.p; } public String toString() { String t = "E(F_" + p + ") : "; String s = "y^2 = x^3 + "; if(a == 0) ; else if(a == 1) s += "x + "; else s += a + "x + "; s += b; if(b == 0) { if(a == 0) s = s.substring(0, s.indexOf('3') + 1); else s = s.substring(0, s.indexOf('x', 8) + 1); } return t + s; } public String forParsing() { return a + " " + b + " " + p; } }