classnph

Présentation
, deux codes = Une solution

Typage du nombre entier :
- Réponse qualifiant le nombre ( pair, impair)
Type = Reste = nombre%6
Essayage du nombre premier :
- Réponse quantitative du nombre ( quotient)
Intervalle = Quotient = 1/nombre

[http://www.developpez.net/forums/blogs/307889-toumic/b1554/facons-traiter-nombres-premiers-multiples/]
[http://www.cabviva.com/agenph.html]
Merci vinss pour les commentaires qui m'ont aidés à me souvenir de la commutativité, et du carré
Merci biBistouille par son champ d'activité, qui a propulsé une méthode remarquablement technique
Pour le fun, un exemple gradé :)
Cosmic 513974268
ip 11 dvs 513974268 sq3 150 sq4 12
eleme 12 typ 0 sqrip 22671
1 * 513974268 typ 1*0
2 * 256987134 typ 2*0
3 * 171324756 typ 3*0
4 * 128493567 typ 4*3
6 * 85662378 typ 0*0
9 * 57108252 typ 3*0 A3*6 A12*A4759021*
12 * 42831189 typ 0*3 A0*3 A9*A4759021*
18 * 28554126 typ 0*0
27 * 19036084 typ 3*4
36 * 14277063 typ 0*3
54 * 9518042 typ 0*2
108 * 4759021 typ 0*1 A108*B4759021*
nphb_6b7corrige.py En : 0.03610491752624512

Et, son sous-multiple favori :)
Cosmic 108
ip 2 dvs 108 sq3 3 sq4 1
eleme 6 typ 0 sqrip 10
1 * 108 typ 1*0
2 * 54 typ 2*0
3 * 36 typ 3*0
4 * 27 typ 4*3
6 * 18 typ 0*0
9 * 12 typ 3*0
nphb_6b7corrige.py En : 0.029962539672851562

NPHony_1a.py:
Simplifié
nphysic_1.py. Cause à causés...
Nombres Premiers :ip: [1, 3, 11, 101]
1 * 9999876543210000123456789999 typ 1*3
3 * 3333292181070000041152263333 typ 3*3
9 * 1111097393690000013717421111 typ 3*1
11 * 909079685746363647586980909 typ 5*3
33 * 303026561915454549195660303 typ 3*3
99 * 101008853971818183065220101 typ 3*5
101 * 99008678645643565578780099 typ 5*3
303 * 33002892881881188526260033 typ 3*3
909 * 11000964293960396175420011 typ 3*5
1111 * 9000788967785778688980009 typ 1*3
3333 * 3000262989261926229660003 typ 3*3
9999 * 1000087663087308743220001 typ 3*1
Cosmic 9999876543210000123456789999 typ 3 long 12
nphysic_11a.py En 7.668458700180054
Ce difficile sujet et la cause des nombres aux communautés différentes, la maitrise du code chargé de leurs développements est ainsi rendue presque impossible à défaut de connaître les communs avant analyse...


Un pas de plus grâce à la production communale des nombres premiers et de leurs systématiques : PC9co.py (balle)
Dire que le sujet a une fin est une affirmation peu sûre, selon que les méthodes bien que distinctes permettent de nombreuses modulations. Puisque révéler les associations des nombres premiers multiples et communs, ne s'arrête pas à une unique application. Si le monde que je connais n'a pas vraiment une idée précise sur une autre utilité, celui des tiers a peut être différentes solutions...
Détails
Éditeur : cabviva   +
Licence : Libre
Date de mise en ligne : 25 décembre 2017




Avatar de VinsS VinsS - Expert confirmé https://www.developpez.com
le 31/07/2016 à 13:55
J'avais toujours soupçonné que toumic est un robot, maintenant j'en ai la preuve.
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 01/08/2016 à 21:02

Code : Sélectionner tout
1
2
3
4
5
6
7
8
 
# Affiche La Multiplication
nombre = 1626
for i in range(1, nombre):
    for y in range(1, nombre):
        iy = i * y
        if iy == nombre:
            print(i, '*', y, '=', iy)
.../
Avatar de VinsS VinsS - Expert confirmé https://www.developpez.com
le 02/08/2016 à 10:24
Et ceci:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
import time
from math import sqrt
num = 1626
sqr = int(sqrt(num)) + 1
 
def toumic(tot):
    begin = time.time()
    for i in range(tot):
        for y in range(tot):
            iy = i * y
            if iy == tot:
                print("%s * %s = %s" % (i, y, tot))
    print("Done at: %s" %(time.time() - begin))
 
def vinss(tot, max_):
    begin = time.time()
    for i in range(max_):
        for y in range(max_, tot):
            if i * y == tot:
                print("%s * %s = %s" % (i, y, tot))
    print("Done at: %s" %(time.time() - begin))
 
toumic(num)
vinss(num, sqr)
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
 
2 * 813 = 1626
3 * 542 = 1626
6 * 271 = 1626
271 * 6 = 1626
542 * 3 = 1626
813 * 2 = 1626
Done at: 0.7460360527038574
2 * 813 = 1626
3 * 542 = 1626
6 * 271 = 1626
Done at: 0.017701148986816406
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 03/08/2016 à 21:29
Ou bien
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
# !/usr/bin/env python 3.5
# -*- coding: utf-8 -*-
import time
from math import sqrt
num = 9
sqr = int(sqrt(num))
print(sqr)
 
def toumic(tot):
    begin = time.time()
    for i in range(tot):
        for y in range(tot):
            iy = i * y
            if iy == tot:
                print("toumic = %s * %s = %s" % (i, y, tot))
    print("toumic = Done at: %s" %(time.time() - begin))
 
def vinss(tot, max_):
    begin = time.time()
    for i in range(max_):
        for y in range(max_, tot):
            if i * y == tot:
                print("vinss = %s * %s = %s" % (i, y, tot))
    print("vinss = Done at: %s" %(time.time() - begin))
 
toumic(num)
vinss(num, sqr + 1)
Code : Sélectionner tout
1
2
3
4
5
 
3
toumic = 3 * 3 = 9
toumic = Done at: 0.0
vinss = Done at: 0.0
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 04/08/2016 à 19:30
Citation Envoyé par toumic Voir le message
Ou bien
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
# !/usr/bin/env python 3.5
# -*- coding: utf-8 -*-
import time
from math import sqrt
num = 9
sqr = int(sqrt(num))
print(sqr)
 
def toumic(tot):
    begin = time.time()
    for i in range(tot):
        for y in range(tot):
            iy = i * y
            if iy == tot:
                print("toumic = %s * %s = %s" % (i, y, tot))
    print("toumic = Done at: %s" %(time.time() - begin))
 
def vinss(tot, max_):
    begin = time.time()
    for i in range(max_):
        for y in range(max_, tot):
            if i * y == tot:
                print("vinss = %s * %s = %s" % (i, y, tot))
    print("vinss = Done at: %s" %(time.time() - begin))
 
toumic(num)
vinss(num, sqr + 1)
Code : Sélectionner tout
1
2
3
4
5
 
3
toumic = 3 * 3 = 9
toumic = Done at: 0.0
vinss = Done at: 0.0
Une toute petite correction pour un résultat pour tous

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
# !/usr/bin/env python 3.5
# -*- coding: utf-8 -*-
import time
from math import sqrt
num = 1600
sqr = int(sqrt(num))
print(sqr)
 
def toumic(tot):
    begin = time.time()
    for i in range(tot):
        for y in range(tot):
            if i * y == tot:
                print("toumic = %s * %s = %s" % (i, y, tot))
    print("toumic = Done at: %s" %(time.time() - begin))
 
def vinss(tot, max_):
    begin = time.time()
    for i in range(max_):
        for y in range(max_ - 1, tot):
            if i * y == tot:
                print("vinss = %s * %s = %s" % (i, y, tot))
    print("vinss = Done at: %s" %(time.time() - begin))
 
toumic(num)
vinss(num, sqr + 1)
labowagenph\agenph1toast2et.py ================
4
toumic = 2 * 8 = 16
toumic = 4 * 4 = 16
toumic = 8 * 2 = 16
toumic = Done at: 0.008025884628295898
vinss = 2 * 8 = 16
vinss = 4 * 4 = 16
vinss = Done at: 0.00871419906616211
>>>
Code : Sélectionner tout
1
2
 
# Raté mais c'est pas grave :)
Avatar de bistouille bistouille - Membre averti https://www.developpez.com
le 12/10/2016 à 12:03
Allez parce que ça m'amuse aussi les concours de celui qui pisse (du code) le plus loin

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import time
from math import sqrt
num = 1600
sqr = int(sqrt(num))
print(sqr)
 
def toumic(tot):
    begin = time.time()
    for i in range(tot):
        for y in range(tot):
            if i * y == tot:
                print("toumic = %s * %s = %s" % (i, y, tot))
    print("toumic = Done at: %s" %(time.time() - begin))
 
def biBistouille(num) :
    debut = time.time()
    num2 = num
    def genInfini(i, pas) :
        while i < float('inf') :
            yield(i)
            i += pas
 
    def genPrems() :
        yield 2
        for n in genInfini(2, 1) :
            if not n % 2 :
                continue
            x = 3
            p = True
            while x < n**0.5 + 1 :
                if not n % x :
                    p = False
                    break
                x += 2
            if not p :
                continue
            yield n
 
    gp = genPrems()
    liste = []
    while num2 > 1 :
        np = next(gp)
        while not num2 % np :
            liste.append(np)
            num2 /= np
 
    i = 0
    comb = set()
    while i < len(liste) :
        comb.add((liste[i], int(num / liste[i])))
        z = liste[i]
        for n in liste[:i] :
            z *= n
            res = int(num / z)
            valeur = (z, res) if z < res else (res, z)
            comb.add(valeur)
        i += 1
 
    res = ''
    for n in sorted(comb) :
        res += 'BiBistouille : {} * {} = {}\n'.format(n[0], n[1], num)
    print('{}Bibistouille Effectué en : {}'.format(res, time.time() - debut))
 
num = 1600
toumic(num)
biBistouille(num)
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
splash@splash:~$ py3 toumic_est_trop_comique.py 
40
toumic = 2 * 800 = 1600
toumic = 4 * 400 = 1600
toumic = 5 * 320 = 1600
toumic = 8 * 200 = 1600
toumic = 10 * 160 = 1600
toumic = 16 * 100 = 1600
toumic = 20 * 80 = 1600
toumic = 25 * 64 = 1600
toumic = 32 * 50 = 1600
toumic = 40 * 40 = 1600
toumic = 50 * 32 = 1600
toumic = 64 * 25 = 1600
toumic = 80 * 20 = 1600
toumic = 100 * 16 = 1600
toumic = 160 * 10 = 1600
toumic = 200 * 8 = 1600
toumic = 320 * 5 = 1600
toumic = 400 * 4 = 1600
toumic = 800 * 2 = 1600
toumic = Done at: 0.26367926597595215
BiBistouille : 1 * 1600 = 1600
BiBistouille : 2 * 800 = 1600
BiBistouille : 4 * 400 = 1600
BiBistouille : 5 * 320 = 1600
BiBistouille : 8 * 200 = 1600
BiBistouille : 10 * 160 = 1600
BiBistouille : 16 * 100 = 1600
BiBistouille : 20 * 80 = 1600
BiBistouille : 25 * 64 = 1600
BiBistouille : 32 * 50 = 1600
BiBistouille : 40 * 40 = 1600
Bibistouille Effectué en : 0.00014281272888183594
# Raté mais c'est pas grave
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 12/10/2016 à 19:10
Citation Envoyé par bistouille Voir le message
Allez parce que ça m'amuse aussi les concours de celui qui pisse (du code) le plus loin

.../...

Code : Sélectionner tout
1
2
splash@splash:~$ py3 toumic_est_trop_comique.py 
40
Et plus petite, p...

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
import time
from math import sqrt
num = 1600
sqr = int(sqrt(num))
 
def toumic(tot):
    begin = time.time()
    for i in range(sqr + 1):
        for y in range(sqr, int(num/2)+1):
            if i * y == tot:
                print("toumic = %s * %s = %s" % (i, y, tot))
                break
    print("toumic = Done at: %s" %(time.time() - begin))
 
def biBistouille(num) :
    debut = time.time()
    num2 = num
    def genInfini(i, pas) :
        while i < float('inf') :
            yield(i)
            i += pas
 
    def genPrems() :
        yield 2
        for n in genInfini(2, 1) :
            if not n % 2 :
                continue
            x = 3
            p = True
            while x < n**0.5 + 1 :
                if not n % x :
                    p = False
                    break
                x += 2
            if not p :
                continue
            yield n
 
    gp = genPrems()
    liste = []
    while num2 > 1 :
        np = next(gp)
        while not num2 % np :
            liste.append(np)
            num2 /= np
 
    i = 0
    comb = set()
    while i < len(liste) :
        comb.add((liste[i], int(num / liste[i])))
        z = liste[i]
        for n in liste[:i] :
            z *= n
            res = int(num / z)
            valeur = (z, res) if z < res else (res, z)
            comb.add(valeur)
        i += 1
 
    res = ''
    for n in sorted(comb) :
        res += 'BiBistouille : {} * {} = {}\n'.format(n[0], n[1], num)
    print('{}Bibistouille Effectué en : {}'.format(res, time.time() - debut))
 
# num = 1600
toumic(num)
biBistouille(num)
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 05/11/2016 à 19:55
Re-salut
Je relance les dés ...

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 
import time
from math import sqrt
 
def biBistouille(num) :
    debut = time.time()
    num2 = num
    def genInfini(i, pas) :
        while i < float('inf') :
            yield(i)
            i += pas
 
    def genPrems() :
        yield 2
        for n in genInfini(2, 1) :
            if not n % 2 :
                continue
            x = 3
            p = True
            while x < n**0.5 + 1 :
                if not n % x :
                    p = False
                    break
                x += 2
            if not p :
                continue
            yield n
 
    gp = genPrems()
    liste = []
    while num2 > 1 :
        np = next(gp)
        while not num2 % np :
            liste.append(np)
            num2 /= np
 
    i = 0
    comb = set()
    while i < len(liste) :
        comb.add((liste[i], int(num / liste[i])))
        z = liste[i]
        for n in liste[:i] :
            z *= n
            res = int(num / z)
            valeur = (z, res) if z < res else (res, z)
            comb.add(valeur)
        i += 1
    res = ''
    for n in sorted(comb) :
        res += 'BiBistouille : {} * {} = {}\n'.format(n[0], n[1], num)
    print('{}Bibistouille Effectué en : {}'.format(res, time.time() - debut))
 
 
def toumtoumic(num1):
    debut2 = time.time()
    maxinum = int(num1 / 2)
    max = maxinum if maxinum else 1
    min = int(sqrt(num1))
    def gentoum():
        for chnum in range(1, min + 1):
            npnum = int(num1 / chnum)
            if not num1 % chnum:
                yield chnum, npnum
            else:
                pass
 
    goum = gentoum()
    for g in goum:
        print('alpage : {} * {} = {}'.format(g[0], g[1], num1))
    print('toumToumic Effectué en : {}'.format(time.time() - debut2))
 
num = num1 = 16758984654
biBistouille(num)
toumtoumic(num1)
Pour un résultat gratuit

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 RESTART: C:\Users\Vincent\Documents\developpez\labowa\labowagenph\nphbistouille1.py 
BiBistouille : 1 * 16758984654 = 16758984654
BiBistouille : 2 * 8379492327 = 16758984654
BiBistouille : 3 * 5586328218 = 16758984654
BiBistouille : 6 * 2793164109 = 16758984654
BiBistouille : 18 * 931054703 = 16758984654
BiBistouille : 22159 * 756306 = 16758984654
BiBistouille : 42017 * 398862 = 16758984654
BiBistouille : 44318 * 378153 = 16758984654
BiBistouille : 66477 * 252102 = 16758984654
BiBistouille : 84034 * 199431 = 16758984654
BiBistouille : 126051 * 132954 = 16758984654
Bibistouille Effectué en : 0.27219223976135254
alpage : 1 * 16758984654 = 16758984654
alpage : 2 * 8379492327 = 16758984654
alpage : 3 * 5586328218 = 16758984654
alpage : 6 * 2793164109 = 16758984654
alpage : 9 * 1862109406 = 16758984654
alpage : 18 * 931054703 = 16758984654
alpage : 22159 * 756306 = 16758984654
alpage : 42017 * 398862 = 16758984654
alpage : 44318 * 378153 = 16758984654
alpage : 66477 * 252102 = 16758984654
alpage : 84034 * 199431 = 16758984654
alpage : 126051 * 132954 = 16758984654
toumToumic Effectué en : 0.08974242210388184
>>>
Avatar de toumic toumic - Membre confirmé https://www.developpez.com
le 06/11/2016 à 8:05
Encore une amélioration en jeu, en copiant les techniques de l'adversaire on gagne du temps
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
import time
from math import sqrt
 
def biBistouille(num) :
    debut = time.time()
    num2 = num
    def genInfini(i, pas) :
        while i < float('inf') :
            yield(i)
            i += pas
 
    def genPrems() :
        yield 2
        for n in genInfini(2, 1) :
            if not n % 2 :
                continue
            x = 3
            p = True
            while x < n**0.5 + 1 :
                if not n % x :
                    p = False
                    break
                x += 2
            if not p :
                continue
            yield n
 
    gp = genPrems()
    liste = []
    while num2 > 1 :
        np = next(gp)
        while not num2 % np :
            liste.append(np)
            num2 /= np
 
    i = 0
    comb = set()
    while i < len(liste) :
        comb.add((liste[i], int(num / liste[i])))
        z = liste[i]
        for n in liste[:i] :
            z *= n
            res = int(num / z)
            valeur = (z, res) if z < res else (res, z)
            comb.add(valeur)
        i += 1
    res = ''
    for n in sorted(comb) :
        res += 'BiBistouille : {} * {} = {}\n'.format(n[0], n[1], num)
    print('{}Bibistouille Effectué en : {}'.format(res, time.time() - debut))
 
def toumtoumic(num1):
    debut2 = time.time()
    min = int(sqrt(num1))
    def gentoum():
        for chnum in range(1, min + 1):
            npnum = int(num1 / chnum)
            if not num1 % chnum:
                yield chnum, npnum
            else:
                pass
    goum = gentoum()
    gers = ''
    for g in goum:
        gers += 'alpage : {} * {} = {}\n'.format(g[0], g[1], num1)
    print('{}toumToumic Effectué en : {}'.format(gers, time.time() - debut2))
 
num = num1 = 16758984654
biBistouille(num)
toumtoumic(num1)
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
>>> 
========== RESTART: C:/Users/Vincent/Documents/nphbistouille3.py ==========
BiBistouille : 1 * 16758984654 = 16758984654
BiBistouille : 2 * 8379492327 = 16758984654
BiBistouille : 3 * 5586328218 = 16758984654
BiBistouille : 6 * 2793164109 = 16758984654
BiBistouille : 18 * 931054703 = 16758984654
BiBistouille : 22159 * 756306 = 16758984654
BiBistouille : 42017 * 398862 = 16758984654
BiBistouille : 44318 * 378153 = 16758984654
BiBistouille : 66477 * 252102 = 16758984654
BiBistouille : 84034 * 199431 = 16758984654
BiBistouille : 126051 * 132954 = 16758984654
Bibistouille Effectué en : 0.27670955657958984
alpage : 1 * 16758984654 = 16758984654
alpage : 2 * 8379492327 = 16758984654
alpage : 3 * 5586328218 = 16758984654
alpage : 6 * 2793164109 = 16758984654
alpage : 9 * 1862109406 = 16758984654
alpage : 18 * 931054703 = 16758984654
alpage : 22159 * 756306 = 16758984654
alpage : 42017 * 398862 = 16758984654
alpage : 44318 * 378153 = 16758984654
alpage : 66477 * 252102 = 16758984654
alpage : 84034 * 199431 = 16758984654
alpage : 126051 * 132954 = 16758984654
toumToumic Effectué en : 0.056047677993774414
>>>
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique Python