/*to list all prime factors of a number *author:rahule@cse.iitk.ac.in */ #include int main() { int n,i,j,flag,is_n_prime; printf("\nenter the number :"); //enter the number scanf("%d",&n); is_n_prime=1; //flag to be set if n is a prime for(i=2;i<=(n/2);i++) //for each i less that n/2 { if(n%i==0) //if i is a factor of n { flag=0; for(j=2;j<=(i/2);j++) //checking whether i is prime { if((i%j)==0) //if i is divisible by j,then i is not a prime factor.so flag is set and breaked from the inner loop { flag=1; break; } } if(flag==0) //flag remained 0 means i is a prime factor.so print it { printf("\n%d",i); is_n_prime=0; } } } if(is_n_prime==1 && n!=1) // is_n_prime remained 1 means,n itself is a prime number.so print it printf("\n%d",n); printf("\n"); }