public static long[] simp (long [] a) { long c = a[0]; long d = a[1]; if ( a[0]<0 ) { a[0] = -1*a[0]; } if (a[1]>a[0]) { long v = a[0]; a[0]=a[1]; a[1]=v; } while (a[1] > 0) { long t = a[0]; a[0] = a[1]; a[1] = t%a[1]; System.out.println(a[0]+"/"+a[1]); } a[0] = c/a[0]; a[1] = d/a[0]; System.out.println(a[0]+"/"+a[1]); return a; }
I followed the steps of Euclid’s algorithm but I was stunned when a divide by zero problem appeared. I don’t know how it can happen.
Advertisement
Answer
The problem is with the below two lines.
a[0] = c/a[0]; a[1] = d/a[0];
First statement will make a[0] as 0 since c is 0. Next statement will be 1/0.