Nur eine Zeile
habe ich sehr carefuly über Ihre Frage nachgedacht und ich habe versucht , eine hocheffiziente und performant Stück Code zu schreiben , um alle Teiler eine gegebene Zahl auf dem Bildschirm drucken wir nur eine Zeile Code benötigen! (verwenden Sie die Option -std = c99 während über gcc kompilieren)
for(int i=1,n=9;((!(n%i)) && printf("%d is a divisor of %d\n",i,n)) || i<=(n/2);i++);//n is your number
für Zahlen von Teilern zu finden, können Sie die folgende sehr sehr schnelle Funktion (Arbeit richtig für alle Integer-Zahl außer 1 und 2) verwenden
int number_of_divisors(int n)
{
int counter,i;
for(counter=0,i=1;(!(n%i) && (counter++)) || i<=(n/2);i++);
return counter;
}
oder wenn Sie die Nummer als Divisor (Arbeit richtig für alle Integer-Zahl außer 1 und 2) zu behandeln gegeben
int number_of_divisors(int n)
{
int counter,i;
for(counter=0,i=1;(!(n%i) && (counter++)) || i<=(n/2);i++);
return ++counter;
}
HINWEIS: zwei oben genannten Funktionen korrekt funktioniert für alle positive ganze Zahl außer Nummer 1 und 2, so ist es für alle Zahlen funktionalen, die größer als 2 sind, aber wenn Sie benötigen 1 und 2 abdecken, können Sie eine der folgenden Funktionen (ein wenig Langsamer)
int number_of_divisors(int n)
{
int counter,i;
for(counter=0,i=1;(!(n%i) && (counter++)) || i<=(n/2);i++);
if (n==2 || n==1)
{
return counter;
}
return ++counter;
}
ODER
int number_of_divisors(int n)
{
int counter,i;
for(counter=0,i=1;(!(i==n) && !(n%i) && (counter++)) || i<=(n/2);i++);
return ++counter;
}
klein ist schön :)