 # perfect_squares_and_cubes_v1.c

Sep 7th, 2020
204
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. /*
2.
3.     perfect_squares_and_cubes_v1.c
4.
6.     a,b,c,d,e are five consecutive positive numbers such that
7.     (b+c+d) is a perfect square and
8.     (a+b+c+d+e) is a perfect cube.
9.     Find the smallest possible  values  of such  numbers.
10.
11.
12.     You can find all my C programs at Dragan Milicev's pastebin:
13.
14.     https://pastebin.com/u/dmilicev
15.
16. */
17.
18. #include <stdio.h>
19.
20. // return square root of number if given number is perfect square, otherwise return 0.
21. int is_perfect_square(int number)
22. {
23.     int i;
24.
25.     for(i=0; i<=number/4+1; i++)
26.         if(number == i*i)
27.             return i;
28.
29.     return 0;
30. }
31.
32. // return cube root of number if given number is perfect cube, otherwise return 0.
33. int is_perfect_cube(int number)
34. {
35.     int i;
36.
37.     for(i=0; i<=number/8+1; i++)
38.         if(number == i*i*i)
39.             return i;
40.
41.     return 0;
42. }
43.
44.
45. int main(void)
46. {
47.     int a, number_of_solutions=0, number_of_iterations=0;
48. /*
49.     a,  b,   c,   d,   e    are five consecutive positive numbers
50.
51.     a, a+1, a+2, a+3, a+4
52.
53.     b + c + d = a+1 + a+2 + a+3 = 3*a+6
54.
55.     a + b + c + d = a + a+1 + a+2 + a+3 + a+4 = 5*a+10
56. */
57.
58.     for(a=1; a<700; a++)
59.     {
60.         number_of_iterations++;
61.
62.         if( is_perfect_square(3*a+6) && is_perfect_cube(5*a+10) )
63.         {
64.             number_of_solutions++;
65.             printf("\n  a   b   c   d   e \n");
66.             printf(" %3d %3d %3d %3d% 3d \n", a, a+1, a+2, a+3, a+4 );
67.         }
68.     }
69.
70.     if( number_of_solutions == 0 )
71.         printf("\n There is no such numbers. \n");
72.     else
73.         printf("\n\n There are %d such numbers. \n", number_of_solutions );
74.
75.     printf("\n Number of iterations %d. \n", number_of_iterations );
76.
77.     return 0;
78.
79. } // main()
80.
RAW Paste Data Copied