Так а что тут непонятного? Бесконечный цикл явно возникает при while F(i)%2 == 0 При каком-то значении i - остаток F(i)%2 становится равным 0, а так как внутри этого цикла while больше никаких изменений с F(i) не происходит - цикл и становится бесконечным... Учись делать отладку кода - вставь в этот цикл строку print (i, F(i)%2) - и увидишь, что происходит в твоем цикле при определенном значении i...