Solved

Pythagorean Triples

Posted on 1997-03-06
5
577 Views
Last Modified: 2008-03-10

2.55      (Pythagorean Triples) A right triangle can have sides that are all integers.  The set of three integer values for the sides of a right triangle is called a Pythagorean triple.  These three sides must satisfy the relationship that the sum of the squares of two of the sides is equal to the square of the hypotenuse.  Find all Pythagorean triples for side l, side2, and the hypotenuse all no larger than 500.  Use a triple-nested for-loop that tries all possibilities.  This is an example of "brute force" computing.  You will learn in more advanced computer science courses that there are large numbers of interesting problems for which there is no known algorithmic approach other than using sheer brute force.

0
Comment
Question by:fondue
5 Comments
 
LVL 4

Expert Comment

by:jos010697
ID: 1162277
Is this a homework problem?
0
 
LVL 2

Accepted Solution

by:
Slarti earned 10 total points
ID: 1162278
#include <iostream.h>
int main()
{
 int a,b,c;
 for(a=1;a<500;a++)
  for(b=a;b<500;b++)
   for(c=b;c<500;c++)
    if(a*a+b*b==c*c)
     cout<<a<<","<<b<<","<<c<<endl;
 return 0;
}
0
 

Expert Comment

by:bc022297
ID: 1162279
since 500 * 500 = 250000, you will have to use long ints, otherwise the above code won't work.


0
 

Expert Comment

by:bc022297
ID: 1162280
since 500 * 500 = 250000, you will have to use long ints, otherwise the above code won't work.


0
 
LVL 84

Expert Comment

by:ozo
ID: 1162281
Just so we don't give the impression that there is no known algorithmic approach other than using sheer brute force for this problem:

for( s=1; s<23; s++){
    for( t=s+1; (c = t*t + s*s) < 500; t++ ){
      a = t*t - s*s; b = 2*s*t;
        cout<<a<<","<<b<<","<<c<<endl;
    }
}
 
0

Featured Post

ScreenConnect 6.0 Free Trial

Want empowering updates? You're in the right place! Discover new features in ScreenConnect 6.0, based on partner feedback, to keep you business operating smoothly and optimally (the way it should be). Explore all of the extras and enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generat…
Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, wh…
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question