Greseala este una foarte simpla: atunci cand determini daca numarul e prim sau nu, la inceput ai scris deja ca prim = 1; prim2 = 1. La partea:
if(ca%i==0)
prim = 0
else
prim = 1
acel 'else' iti da peste cap programul, facand numarul sa para prim, chiar daca este divizibil cu un anumit numar!
Elimina 'else' - ul din ambele locuri unde vezi daca numarul e prim si ar trebui sa functioneze!
Sper ca te-am ajutat!