#include <stdio.h>
#include <math.h>
int factorise(int a, int factor)
{
if (a % factor == 0)
{
while (a % factor == 0)
{ a/=factor;
}
return a;
}
else
{
return a;
}
}
int main()
{
int n, i;
printf("Enter the number to factorise - "); printf("prime factors are - \n"); if (n <= 0) {
printf("Prime factorization is undefined for non-positive numbers.\n"); return 1;
}
if (n == 1) {
printf("No prime factors for 1.\n"); return 0;
}
while (n % 2 == 0)
{
n /= 2;
}
for (i
= 3; i
<= sqrt(n
); i
+= 2) {
n = factorise(n, i);
}
if (n > 2)
{
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgZmFjdG9yaXNlKGludCBhLCBpbnQgZmFjdG9yKQp7CiAgICAKICAgIGlmIChhICUgZmFjdG9yID09IDApCiAgICB7CiAgICAgICAgd2hpbGUgKGEgJSBmYWN0b3IgPT0gMCkKICAgICAgICB7ICAgYS89ZmFjdG9yOwogICAgICAgICAgICBwcmludGYoIiVkICIsIGZhY3Rvcik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBhOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIHJldHVybiBhOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IG4sIGk7CiAgICBwcmludGYoIkVudGVyIHRoZSBudW1iZXIgdG8gZmFjdG9yaXNlIC0gIik7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBwcmludGYoInByaW1lIGZhY3RvcnMgYXJlIC0gXG4iKTsKICAgIGlmIChuIDw9IDApIHsKICAgICAgICBwcmludGYoIlByaW1lIGZhY3Rvcml6YXRpb24gaXMgdW5kZWZpbmVkIGZvciBub24tcG9zaXRpdmUgbnVtYmVycy5cbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQogICAgaWYgKG4gPT0gMSkgewogICAgICAgIHByaW50ZigiTm8gcHJpbWUgZmFjdG9ycyBmb3IgMS5cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgd2hpbGUgKG4gJSAyID09IDApCiAgICB7CiAgICAgICAgcHJpbnRmKCIyICIpOwogICAgICAgIG4gLz0gMjsKICAgIH0KICAgIGZvciAoaSA9IDM7IGkgPD0gc3FydChuKTsgaSArPSAyKQogICAgewogICAgICAgIG4gPSBmYWN0b3Jpc2UobiwgaSk7CiAgICB9CgogICAgaWYgKG4gPiAyKQogICAgewogICAgICAgIHByaW50ZigiJWQgIiwgbik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=