Bonjour,

J'étais sous perl et pour des raisons d'optimisations je viens de transcrire mon script en C++ (je précise que je suis nul dans ce langage).
J'ai besoin de faire des puissances de n, j'utilise donc math.h et pow().
Mon problème est le suivant : parfois la fonction retire 1 sans raison

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
#include <iostream>
#include <math.h>
using namespace std;
int main(){
 
int n=4;
unsigned long int d=0;
unsigned long int e=0;
unsigned long int f=0;
 
d = pow(23,n);      //donne 279841 - 1
e = pow(23,4);      //donne 279841
f = 23*23*23*23;  //donne 279841
 
}
Ça marche nickel avec 12, pas avec 11 et 23 : peut-être est-ce la magie des nombres premiers
Y a t-il une raison ? (c'est pas dérangeant mais ce "bug" de la fonction pow est étrange)

PS : le même code en perl marche à merveille vive C++

Merci de votre réponse éventuelle et encore désolé de poster un problème qui peut vous paraître aussi basique ...