Robię sobie w ramach treningu zadania z ProjectEuler. Aktualnie próbuję przepchnąć
Kod: Zaznacz cały
https://projecteuler.net/problem=14
Algorytm to rasowy brute - lecę w pętli od 2 do 999999 i sprawdzam, która liczba generuje najdłuższy ciąg (mam nadzieję, że tak jest).
Z góry dziękuję za pomoc!
Kod: Zaznacz cały
#include <stdio.h>
int length(int x);
int main(){
int max;
int tmp = 0;
int tmp2;
int i;
for(i = 2; i < 1000000; i++){
tmp2 = length(i);
if(tmp2 > tmp){
tmp = tmp2;
max = i;
}
printf("%d
", i);
}
printf("
%d
", max);
return 0;
}
int length(int x){
int result = 1;
while(x > 1){
if(x%2 == 0)
x = x/2;
else
x = (3*x) + 1;
result++;
}
return result;
}