Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

 #1 - 04-01-2015 10:04:25

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

Programme en Python répons emystérieuse ...

Bonjour dans le cadre de mes cours cette année j'ai informatique et nous codons en python. Afin je m’entraîner un peu avant les concours j'ai commencé le projet Euler, pour le troisième problème il s'agit de trouver le plus grand facteur premier d'un nombre donné dans l'énoncé je n'ai donc pas réfléchit à faire efficace j'ai directement codé ça :

Code:

def factor(nombre):
    k=2
    a=0
    while k <=nombre:
        if nombre%k==0:
            nombre=nombre/k
            a=k
        else:
            k=k+1
    return a

print(factor(600851475143))

Le programme renvoie 6857, la réponse attendue tout va bien...

Oui mais pour m'amuser j'ai demandé à mon programme :

Code:

print(factor(10**100))

(10^100)

Le programme n'étant pas optimisé je ne m'attendais à ce qu'il me réponde....en moins de 3 secondes

Code:

458197

... yikes

Ce qui est fort embêtant c'est que la factorisation de 10^n est 2^n*5^n quelque soit n un entier...

Une explication ?

Shadock


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline
  • |
  • Répondre

#0 Pub

 #2 - 05-01-2015 08:53:14

scrablor
Expert de Prise2Tete
Enigmes résolues : 49
Messages : 964

Programme en Python réponse mstérieuse ...

J'ai testé sur http://www.tutorialspoint.com/execute_python_online.php
La réponse est bien 5 pour 10^100...
La version utilisée est Python v2.7.5

Pris d'un doute, je suis revenu avec Python v3.3.2
http://www.tutorialspoint.com/execute_p … online.php
Résultat : 458197

Qui a dit "amélioration" ?


Celui qui fuit les casse-tête ne vaut pas un clou.

 #3 - 05-01-2015 17:40:26

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

prigramme en python réponse mystérieuse ...

J'ai justement la dernière version ...

Tes sites ont l'air cool mais je ne comprends pas comment on exécute le programme j'ai beau appuyer sur Execute je ne vois pas où est la réponse ? non c'est bon !


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline

 #4 - 12-01-2015 07:24:24

enigmatus
Expert de Prise2Tete
Enigmes résolues : 0
Messages : 561

Progarmme en Python réponse mystérieuse ...

Bonjour,
En python2, / est une division entière (si les 2 opérandes sont entiers), mais pas en python3. Il suffit de remplacer

Code:

            nombre=nombre/k

par

Code:

            nombre=nombre//k

et ça marche dans les 2 cas.

 

Réponse rapide

Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Dans une course, vous doublez le 19ème, en quelle position êtes-vous ?

Sujets similaires

Sujet Date Forum
P2T
09-02-2011 Blabla
30-01-2010 Blabla
04-04-2011 Blabla
P2T
01-04-2008 Blabla
P2T
31-07-2008 Blabla
05-04-2008 Blabla
P2T
Boom ou pas boom ? par Seanbateman
31-01-2011 Blabla
P2T
Code anti robot par franck9525
07-09-2010 Blabla
31-03-2008 Blabla

Mots clés des moteurs de recherche

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete