jukaukor

Taxicabnumbers.cpp

Sep 20th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. // Taxicabnumbers
  2. // C++ ohjelma Taxicabnumber.cpp
  3. // Juhani Kaukoranta 20.9.2019
  4.  
  5. #include <cmath>
  6. #include <stdlib.h>
  7. #include <cinttypes>
  8. #include <iostream>
  9.  
  10. using namespace std;
  11.  
  12. unsigned long long taxicabnumber,raja;
  13.  
  14. clock_t t0, t1; // Time
  15.  
  16. void Taxicab();
  17.  
  18. int main()
  19. {
  20.  
  21. cout << "Anna taxicab-luku Ta(n), alle 20 numeroa :" << endl;
  22. cout << "Syötä joku näistä taxicab-numeroista:" << endl;
  23. cout << "Joko Ta(2) = 1729 , Ramanujan-Hardy -tapaamisessa Hardyn taksin numero " << endl;
  24. cout << "tai Ta(3) = 87539319, joka löydettiin vuonna 1957 tietokoneen avulla" << endl;
  25. cout << "tai Ta(4) = 6963472309248, löydettiin vuonna 1991 tietokoneen avulla" << endl;
  26. cout << "tai Ta(5) = 48988659276962496, löydettiin vuonna 1994 tietokoneen avulla" << endl << endl;
  27. cin >> taxicabnumber;
  28. raja = 1 + cbrt(taxicabnumber);
  29. cout << "taxicabnumber = " << taxicabnumber << endl;
  30. cout << "for-silmukan raja = " << raja << endl;
  31. t0 = clock();
  32. Taxicab();
  33. t1 = clock();
  34. cout << "( Laskenta-aika oli: " << (double)(t1 - t0) / CLOCKS_PER_SEC << " sekuntia )" << endl;
  35. return 0;
  36. }
  37.  
  38. void Taxicab()
  39. {
  40.  
  41. unsigned long long temp = 0;
  42. unsigned long long i,j;
  43. for (i = 1; i < raja; i++)
  44. {
  45. j = cbrt(taxicabnumber- pow(i,3));
  46. if ((pow(i,3)+ pow(j,3)) == taxicabnumber)
  47. {
  48. if (i == temp)
  49. {
  50. break;
  51. }
  52. cout << taxicabnumber << " on lukujen "<< i << " ja " << j << " kuutioiden summa" << endl;
  53. temp = j;
  54. }
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment