C program to generate divisors of an integer

#include<stdio.h>
#include<conio.h>

void main()
{
int i,n;
clrscr();  //to clear the screen

printf(“Enter any number:”);
scanf(“%d”,&n);
printf(“nDivisors of %d are”,n);

for(i=1;i<n/2;++i)
if(n%i==0)
printf(” %d”,i);
getch();  //to stop the screen
}

3 thoughts on “C program to generate divisors of an integer

  1. Steven Wang

    You're missing a divisor! If the number is even, you'll always miss n/2. Change the conditional to
    i <= n/2.

    Reply
  2. abdelrhman hamdy metwaly

    This algorithm is O(n) complexity
    There is another method to calculate the divisors in O(sqrt(n)) complexity

    vector d;
    void genDivisors(int num){
    d.clear();
    int i=1;
    for(;i*i<num;i++)
    if(num%i==0) {d.push_back(i),d.push_back(num/i);}

    if(i*i==num)d.push_back(i);
    sort(d.begin(),d.end());
    }

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *