[c] n-te Wurzel ziehen und n dann ausgeben

McBoon

Grünschnabel
Hallo erstmal,

habe ein programm geschrieben, dass mir die die nächst größere 2er Potenz einer eingelesenen zahl ausgibt. (Bsp.: 1000 = 1024)
aber leider nur als Zahl und nicht in der Form 2^10.
habs probiert in dem ich

pow(Zahl, 1.0/n)=2 geschrieben hab, nur will er mir dann nich
n bestimmen und ausgeben.

also wie kann ich es schaffen, dass er mir beispielsweise bei 1024 ,
2^10 ausgibt?
 
Hi,

Code:
#include <math.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    int zahl;
    cout << "Bitte Zahl eingeben: ";
    cin >> zahl;
    int iPotenz = -1;
    int iResult = 0;

    while (iResult < zahl)
    {
        iPotenz++;
        iResult = pow(2, iPotenz);
    }

    cout << endl << "Naechste Potenz: " << iResult << " = " << "2^" << iPotenz << endl;

    cout << "Wurzel aus: " << iResult << " ist " << sqrt(iResult) << endl;
    system("pause");

    return 0;
}

Aus was wolltest du jetzt nochmal die Wurzel ziehn?
Das war mir jetzt nicht ganz klar.

MfG Turri
 
Zuletzt bearbeitet:
Nennt man sowas nicht Logarithmus?
Genau das hatte ich mir auch gedacht. Siehe:
C:
#include <stdio.h>
#include <math.h>

int main(void) {
  printf("Bitte Zahl eingeben: ");
  
  unsigned int zahl;
  scanf("%u", &zahl);

  unsigned int exponent = (unsigned int)ceil(log((float)zahl) / log(2.f));
  printf("2^%u = %u\n", exponent, 1 << exponent);
  
  return 0;
}

Grüße, Matthias
 
Hi,

Aus was wolltest du jetzt nochmal die Wurzel ziehn?
Das war mir jetzt nicht ganz klar.

MfG Turri

aus irgendeiner zweier potenz, z.B. 2^4, denn mein programm gibt mir dann, in diesem fall nur 16 aus, ich hätte aber gern, dass es 2^4 ausgibt.
dafür bräuchte ich also eine möglichkeit
z.B.:

n-te Wurzel aus 16 = 2
zu ziehen und n zu bestimmen.

(Ginge wahrscheinlich auch einfacher, aber würde gerne diese möglichkeit anwenden)
 
Zurück