Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- unsigned collatz_conjecture[1000001]={};
- unsigned collatz( unsigned n, unsigned collatz_conjecture[] ){
- if(n==1) return 0;
- if(n<1000000)
- if(collatz_conjecture[n]!=0)
- return collatz_conjecture[n];
- if(n%2==0) return 1+collatz(n/=2,collatz_conjecture);
- else
- if(n%2==1) return 1+ collatz(3*n+1,collatz_conjecture);
- }
- void a_tabulate(){
- for(unsigned i=3;i<=1000000;i++)
- {
- collatz_conjecture[i]=collatz(i,collatz_conjecture);
- printf("%d %d\n", i, collatz_conjecture[i]);
- }
- }
- void b_print(){
- int maxi=0;
- for(unsigned i=2;i<=1000000;i++)
- {
- collatz_conjecture[i]=collatz(i,collatz_conjecture);
- if(collatz_conjecture[i]>maxi)
- {maxi=collatz_conjecture[i];
- printf("%d ", i);}
- }
- }
- int main(){
- a_tabulate();
- b_print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement