Advertisement
Guest User

Untitled

a guest
Aug 15th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.73 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #define MAXN 536870911
  4.  
  5. int v[MAXN];
  6.  
  7. int collatz(unsigned long long n) {
  8.     unsigned long long ini=n;
  9.     int counter=0;
  10.  
  11.     if (n==1)
  12.         return 0;
  13.  
  14.     while (n!=1) {
  15.         printf("v[%llu]: %d\n", n, v[n]);
  16.         if (v[n]!=0) {
  17.             counter+=v[n];
  18.             break;
  19.         }
  20.  
  21.         if (n%2==0) {
  22.             counter++;
  23.             n/=2;
  24.         }
  25.         else {
  26.             counter+=2;
  27.             n = (3*n+1)/2;
  28.         }
  29.     }
  30.  
  31.     v[ini] = counter;
  32.  
  33.     return counter;
  34. }
  35.  
  36. int main() {
  37.     unsigned long long i, j, k;
  38.  
  39.     scanf("%llu%llu", &i, &j);
  40.  
  41.     for (k=i; k<=j; k++)
  42.         printf("%llu: %d\n", k, collatz(k));
  43.  
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement