Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "stdlib.h"
- #define MAXN 536870911
- int v[MAXN];
- int collatz(unsigned long long n) {
- unsigned long long ini=n;
- int counter=0;
- if (n==1)
- return 0;
- while (n!=1) {
- printf("v[%llu]: %d\n", n, v[n]);
- if (v[n]!=0) {
- counter+=v[n];
- break;
- }
- if (n%2==0) {
- counter++;
- n/=2;
- }
- else {
- counter+=2;
- n = (3*n+1)/2;
- }
- }
- v[ini] = counter;
- return counter;
- }
- int main() {
- unsigned long long i, j, k;
- scanf("%llu%llu", &i, &j);
- for (k=i; k<=j; k++)
- printf("%llu: %d\n", k, collatz(k));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement