Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3.  
  4. unsigned collatz_conjecture[1000001]={};
  5.  
  6. unsigned collatz( unsigned n, unsigned collatz_conjecture[] ){
  7.  
  8. if(n==1) return 0;
  9.  
  10. if(n<1000000)
  11. if(collatz_conjecture[n]!=0)
  12. return collatz_conjecture[n];
  13.  
  14. if(n%2==0) return 1+collatz(n/=2,collatz_conjecture);
  15. else
  16. if(n%2==1) return 1+ collatz(3*n+1,collatz_conjecture);
  17.  
  18.  
  19.  
  20.  
  21. }
  22.  
  23. void a_tabulate(){
  24.  
  25. for(unsigned i=3;i<=1000000;i++)
  26. {
  27. collatz_conjecture[i]=collatz(i,collatz_conjecture);
  28. printf("%d %d\n", i, collatz_conjecture[i]);
  29. }
  30.  
  31.  
  32. }
  33.  
  34. void b_print(){
  35.  
  36. int maxi=0;
  37. for(unsigned i=2;i<=1000000;i++)
  38. {
  39. collatz_conjecture[i]=collatz(i,collatz_conjecture);
  40. if(collatz_conjecture[i]>maxi)
  41. {maxi=collatz_conjecture[i];
  42. printf("%d ", i);}
  43.  
  44.  
  45.  
  46. }
  47. }
  48. int main(){
  49.  
  50. a_tabulate();
  51. b_print();
  52.  
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement