Hola, no te copio el código porque sino no tiene chiste
, así lo intentas vos.
Pero, viendo el primer código que pegaste, la idea sería, primero ver los divisores del numero y despues, cada divisor, ver si es primo, o sea (como hiciste en el código de abajo) ver si tiene 2 o menos divisores (o sea, el 1 y el mismo), encontes, yo pondría otro while dentro del if para ver si ese divisor es primo o no, esto lo podes ver poniendo un contador como hiciste en el 2º código... y despues, abajo del 2º while, pero adentro del 1º while, poner un if para ver si el contador es menor o igual a 2, y si lo es, el divisor es primo y si no, se vuelve el contador a cero y se pasa al proximo divisor...
Fijate si se entiende y si lo podes hacer... y si no, veo de pegarte algo de código, yo lo trabaje sobre el 1º código que pegaste, agregando lo que te dije, y me funcionó.
Espero te sierva. Saludos.