Bonjour,
j'amerais que vous attribuiez une cote à ma fonction qui calcule tous
les diviseurs d'un nombre.
Merci
int main()
{
using namespace std ;
int a, x ;
cout << "Entrez le nombre à calculer : " ;
cin >> a ;
for ( int x = a ; x != 0; x-- )
{
if ( a % x == 0 )
{
cout << x << "\n" ;
}
}
return 0;
}
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
C'est quoi une cote ?
using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen d'afficher la décomposition en facteurs premiers en changeant pas grand chose.
-- Sam
le Saturday 31 January 2004 14:57, timythe@freemail.ru écrivit :
Bonjour,
j'amerais que vous attribuiez une cote à ma fonction qui calcule tous
les diviseurs d'un nombre.
Merci
C'est quoi une cote ?
using namespace std ;
int a, x ;
cout << "Entrez le nombre à calculer : " ;
cin >> a ;
for ( int x = a ; x != 0; x-- )
{
if ( a % x == 0 )
{
cout << x << "n" ;
}
}
return 0;
}
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel
cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen
d'afficher la décomposition en facteurs premiers en changeant pas grand
chose.
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
C'est quoi une cote ?
using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen d'afficher la décomposition en facteurs premiers en changeant pas grand chose.
-- Sam
espie
In article <401ba60b$0$260$, Timour wrote:
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
int main() { using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int main() { std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a; std::cin >> a;
for (int x = 1; x * x <= a; ++x) { if (a % x == 0) { std::cout << x << "n"; int y = a/x; if (y != x) std::cout << y << "n"; } } }
L'air de rien, ca te fait passer de O(n) a O(sqrt(n))
In article <401ba60b$0$260$4d4efb8e@read.news.be.uu.net>,
Timour <timythe@freemail.ru> wrote:
Bonjour,
j'amerais que vous attribuiez une cote à ma fonction qui calcule tous
les diviseurs d'un nombre.
Merci
int main()
{
using namespace std ;
int a, x ;
cout << "Entrez le nombre à calculer : " ;
cin >> a ;
for ( int x = a ; x != 0; x-- )
{
if ( a % x == 0 )
{
cout << x << "n" ;
}
}
return 0;
}
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int
main()
{
std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a;
std::cin >> a;
for (int x = 1; x * x <= a; ++x) {
if (a % x == 0) {
std::cout << x << "n";
int y = a/x;
if (y != x)
std::cout << y << "n";
}
}
}
L'air de rien, ca te fait passer de O(n) a O(sqrt(n))
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
int main() { using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int main() { std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a; std::cin >> a;
for (int x = 1; x * x <= a; ++x) { if (a % x == 0) { std::cout << x << "n"; int y = a/x; if (y != x) std::cout << y << "n"; } } }
L'air de rien, ca te fait passer de O(n) a O(sqrt(n))
Fabien LE LEZ
On Sat, 31 Jan 2004 19:50:02 +0000 (UTC), (Marc Espie) wrote:
for (int x = 1; x * x <= a; ++x) {
Ne serait-ce pas plus efficace de calculer la racine carrée une seule fois au début ?
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
C'est quoi une cote ? Je comrepnds ca comme " Attribuer une valeur à qulque chose sur une
échelle de 10 par exemple.
using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen d'afficher la décomposition en facteurs premiers en changeant pas grand chose.
Ok, merci !
Samuel Krempp wrote:
le Saturday 31 January 2004 14:57, timythe@freemail.ru écrivit :
Bonjour,
j'amerais que vous attribuiez une cote à ma fonction qui calcule tous
les diviseurs d'un nombre.
Merci
C'est quoi une cote ?
Je comrepnds ca comme " Attribuer une valeur à qulque chose sur une
échelle de 10 par exemple.
using namespace std ;
int a, x ;
cout << "Entrez le nombre à calculer : " ;
cin >> a ;
for ( int x = a ; x != 0; x-- )
{
if ( a % x == 0 )
{
cout << x << "n" ;
}
}
return 0;
}
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel
cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen
d'afficher la décomposition en facteurs premiers en changeant pas grand
chose.
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
C'est quoi une cote ? Je comrepnds ca comme " Attribuer une valeur à qulque chose sur une
échelle de 10 par exemple.
using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
en tout cas le programme fait ce qu'il faut (sauf si a est négatif, auquel cas la boucle sera un peu longuette)
en parcourant les diviseurs éventuels dans l'autre sens il y a moyen d'afficher la décomposition en facteurs premiers en changeant pas grand chose.
Ok, merci !
Timour
Marc Espie wrote:
In article <401ba60b$0$260$, Timour wrote:
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
int main() { using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int main() { std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a; std::cin >> a;
for (int x = 1; x * x <= a; ++x) { if (a % x == 0) { std::cout << x << "n"; int y = a/x; if (y != x) std::cout << y << "n"; } } }
L'air de rien, ca te fait passer de O(n) a O(sqrt(n)) Oui c'est vrai que votre fonction est plus rapide mais l'ordre dans
lequel sont affichés les diviseurs n'est pas très présentatif..
Marc Espie wrote:
In article <401ba60b$0$260$4d4efb8e@read.news.be.uu.net>,
Timour <timythe@freemail.ru> wrote:
Bonjour,
j'amerais que vous attribuiez une cote à ma fonction qui calcule tous
les diviseurs d'un nombre.
Merci
int main()
{
using namespace std ;
int a, x ;
cout << "Entrez le nombre à calculer : " ;
cin >> a ;
for ( int x = a ; x != 0; x-- )
{
if ( a % x == 0 )
{
cout << x << "n" ;
}
}
return 0;
}
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int
main()
{
std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a;
std::cin >> a;
for (int x = 1; x * x <= a; ++x) {
if (a % x == 0) {
std::cout << x << "n";
int y = a/x;
if (y != x)
std::cout << y << "n";
}
}
}
L'air de rien, ca te fait passer de O(n) a O(sqrt(n))
Oui c'est vrai que votre fonction est plus rapide mais l'ordre dans
lequel sont affichés les diviseurs n'est pas très présentatif..
Bonjour, j'amerais que vous attribuiez une cote à ma fonction qui calcule tous les diviseurs d'un nombre. Merci
int main() { using namespace std ; int a, x ; cout << "Entrez le nombre à calculer : " ; cin >> a ; for ( int x = a ; x != 0; x-- ) { if ( a % x == 0 ) { cout << x << "n" ; } } return 0; }
Si tu n'as pas de contraintes sur l'ordre des diviseurs, fais plutot
#include <iostream>
int main() { std::cout << "Entrez le nombre dont vous voulez les diviseurs: ";
int a; std::cin >> a;
for (int x = 1; x * x <= a; ++x) { if (a % x == 0) { std::cout << x << "n"; int y = a/x; if (y != x) std::cout << y << "n"; } } }
L'air de rien, ca te fait passer de O(n) a O(sqrt(n)) Oui c'est vrai que votre fonction est plus rapide mais l'ordre dans
lequel sont affichés les diviseurs n'est pas très présentatif..
Fabien LE LEZ
On Sat, 31 Jan 2004 21:33:51 +0000, Timour wrote:
Oui c'est vrai que votre fonction est plus rapide mais l'ordre dans lequel sont affichés les diviseurs n'est pas très présentatif..
Eh bien, il suffit de mettre les diviseurs dans un tableau, et d'afficher le tableau à la fin, après l'avoir trié.