I have a problem: how do I pass a primitive long type as a reference in method extendedEuclid? I found that it isn't possible in java, is there any other solution?
Parameter long a must be passed by reference, here is a code below.
public long extendedEuclid(long a, long b) //a have to be passed as a reference
{
    long x = 0;
    long y = 1;
    long lx = 1;
    long ly = 0;
    long temp_a;
    List quotient = new ArrayList<>();
    while(b != 0)
    {
       quotient.add(a/b);
       temp_a = a;
       a = b;
       b = temp_a % b;
    }
    long temp_x = x;
    long temp_y = y;
    for(int i=0; i<quotient.size()-1; i++)
    {
        x = lx - quotient.indexOf(i) * x;
        y = ly - quotient.indexOf(i) * y;
        lx = x;
        ly = y;
        i++;
        if (i == quotient.size() - 1)
            break;
        x = temp_x - quotient.indexOf(i) * x;
        y = temp_y - quotient.indexOf(i) * y;
        temp_x = x;
        temp_y = y;
    }
    return x;
}
 
     
     
     
     
     
     
    