The procedure is the same for Q4 and Q5, so there's no need to treat them separately. If you know how to do one, you know how to do them all.
The 4 is chosen becauseand
.
Printable View
the has the floor 2
![]()
turned over![]()
we say before
![]()
so
![]()
turned over![]()
multiply with the conjugate and so on
i find [2;1
can u continue ?
Okay, first off, what's the point of turning it over to get
and
(respectively) ?
Then, how did you get from
to
?
Lastly, when did you know to place 2 and 1 in the list like you did ( [2;1 ) ?
in fact I'm just doing what in here
the way is for example we want to find continued fraction of sqrt[s]
let f=floor of sqrt[s] ok
then it is trivial that
sqrt[s] = f + sqrt[s] - f, is it ok for now if it then we find the first number
[f;
now we say sqrt[s] = f + (sqrt[s] - f ) the expression in the brackets multiply it with it is conjugate
![]()
turn over it
we say that sqrt[s] = f + sqrt[s] - f
so
suppose that 2f/(s-f^2) = r + t/(s-f^2) , r is integer so
![]()
[f;r,
multiply with the conjugate then turn over and so on
I'm trying to follow you, but I think if you worked with the explicit example I had pointed out I'd understand. Those are the steps I'm missing.
I worked it in sqrt[7] and sqrt[5]
read them
hope u will get the answer
Thank you for that explanation, that is exactly what I needed. I will try to apply this, but if anyone wants to add anymore onto either Sqrt[5] or Sqrt[7], please feel free. I'll be logging on later and it would be great if I had something to check my work against!
Here's my code:
Which gives output forCode:import java.util.ArrayList;
public class ContFracSqrt {
static boolean v=true; // verbosity
public static void main(String[] args) {
print(cfe(5));
}
static void print(ArrayList<Integer> a) {
int i;
String s=a.toString();
if(a.size()>1)
for(i=2;;i++)
if(s.charAt(i)==',') {
s=s.substring(0,i)+"; ("+s.substring(i+2);
s=s.substring(0,s.length()-1)+")]";
break;
}
System.out.println(s);
}
static ArrayList<Integer> cfe(int n) {
ArrayList<Integer> x=new ArrayList<Integer>();
int a=(int)Math.sqrt(n),b=a,c=1,d,e,f,g;
x.add(a);
if(a*a==n) return x;
if(v) System.out.println("\\sqrt{"+n+"}="+a+"+\\dfrac{\\sqrt{"+n+"}-"+a+"}{1}");
if(v) System.out.print("\\dfrac{1}{\\sqrt{"+n+"}-"+a+"}=");
while(true) {
d=c;
c=n-b*b;
g=gcd(c,d);
c/=g;
d/=g;
b=-b;
f=a-c;
for(e=0;b<=f;e++)
b+=c;
x.add(e);
if(v) System.out.println(e+"+\\dfrac{\\sqrt{"+n+"}-"+b+"}{"+c+"}");
if(b==a&&c==1) return x;
if(v) System.out.print("\\dfrac{"+c+"}{\\sqrt{"+n+"}-"+b+"}=");
}
}
static int gcd(int a,int b) {
return (b==0)?a:gcd(b,a%b);
}
}
:
and for:
Let me know how this works for you. I decided against ASCII mode since LaTeX is so much nicer.