# [C (gcc)], 43 bytes

<!-- language-all: lang-c -->

 f(n,i){for(i=1;n%++i;);n=i<n&&f(n/i)^i?:i;}

[Try it online!][TIO-keaqhiad]

[C (gcc)]: https://gcc.gnu.org/
[TIO-keaqhiad]: https://tio.run/##LU/bTsMwDH3GXxFN6pSoQcv9QlbxIWNIU0eRH8jQ6BNVv704QCTHzjnHJ/b4@D6O2zbxKlEs0@3OcdCldn2PRZQ64LHu98QeULzi8xOWdfu4YOViAawzm09nNrAFjAQrwUlIErIEHSQYTxEJJ84RFhqribOWbuOUbrimtpB8btqcHGHeatey1tG61hBTVr@FU9bboMgzepNMaqaka39T9uSvs6UBfNKtjt4HReP8nQaY7MgD1gK0KONtARxUweMXfr/dJj6Lw39FlCjY9wIePu/0mPiuy1fWXV/qTs4nPEtSUxKiwLr9AA "C (gcc) – Try It Online"

Returns `p` if `n` is almost-prime, and `1` otherwise.