#include #include #include int main() { int cnt,head,max,res; head=1000000;max=0; mpz_t r,val; mpz_init(r); mpz_init(val); mpz_set_si(val,1000000); do{ cnt=0; while(mpz_cmp_si(val,1)>0) { if(mpz_cdiv_r_ui(r,val,2)==0) mpz_cdiv_q_ui(val,val,2); else { mpz_mul_si(val,val,3); mpz_add_ui(val,val,1); } cnt++; } if(cnt>max) { max=cnt; res=head; } mpz_set_si(val,--head); }while(head>13); printf("\n\t%i\n\n",res); return 0; }