def curve_to_string(q,t,k,r,D):
    """
    Description:
    
        Returns a string representation of the curve (q,t,r,k,D)
    
    Input:
    
        q - size of prime field
        t - trace of Frobenius
        r - size of prime order subgroup
        k - embedding degree
        D - (negative) fundamental discriminant
    
    Output:
    
        s - string representation of (q,t,r,k,D)
    
    """
    if q == 0 or t == 0 or r == 0 or k == 0 or D == 0:
        return 'Failed to find an elliptic curve'
    else:
        return 'Elliptic curve over a field of size ' + str(q) + ' with trace ' + str(t) + ', a subgroup of order ' + str(r) + ' with embedding degree ' + str(k) + ', and fundamental discriminant ' + str(D)