// A Better (than Naive) Solution to find all divisors
#include <iostream>
#include <math.h>
using namespace std;
// Function to print the divisors
void printDivisors(int n)
{
// Note that this loop runs till square root
for (int i=1; i<=sqrt(n); i++)
{
if (n%i == 0)
{
// If divisors are equal, print only one
if (n/i == i)
cout <<" "<< i;
else // Otherwise print both
cout << " "<< i << " " << n/i;
}
}
}
/* Driver program to test above function */
int main()
{
cout <<"The divisors of 100 are: \n";
printDivisors(100);
return 0;
}
// this code is contributed by shivanisinghss2110
Ly8gQSBCZXR0ZXIgKHRoYW4gTmFpdmUpIFNvbHV0aW9uIHRvIGZpbmQgYWxsIGRpdmlzb3JzCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPG1hdGguaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmN0aW9uIHRvIHByaW50IHRoZSBkaXZpc29ycwp2b2lkIHByaW50RGl2aXNvcnMoaW50IG4pCnsKCS8vIE5vdGUgdGhhdCB0aGlzIGxvb3AgcnVucyB0aWxsIHNxdWFyZSByb290Cglmb3IgKGludCBpPTE7IGk8PXNxcnQobik7IGkrKykKCXsKCQlpZiAobiVpID09IDApCgkJewoJCQkvLyBJZiBkaXZpc29ycyBhcmUgZXF1YWwsIHByaW50IG9ubHkgb25lCgkJCWlmIChuL2kgPT0gaSkKCQkJCWNvdXQgPDwiICI8PCBpOwoKCQkJZWxzZSAvLyBPdGhlcndpc2UgcHJpbnQgYm90aAoJCQkJY291dCA8PCAiICI8PCBpIDw8ICIgIiA8PCBuL2k7CgkJfQoJfQp9CgovKiBEcml2ZXIgcHJvZ3JhbSB0byB0ZXN0IGFib3ZlIGZ1bmN0aW9uICovCmludCBtYWluKCkKewoJY291dCA8PCJUaGUgZGl2aXNvcnMgb2YgMTAwIGFyZTogXG4iOwoJcHJpbnREaXZpc29ycygxMDApOwoJcmV0dXJuIDA7Cn0KCi8vIHRoaXMgY29kZSBpcyBjb250cmlidXRlZCBieSBzaGl2YW5pc2luZ2hzczIxMTAK