28 votes

Code Golf: facteurs premiers d'un nombre

Quel est le moyen le plus court , par nombre de caractères, de trouver des facteurs premiers dans n'importe quel nombre?

Exemple d'entrée: 1806046

Exemple de sortie: 2x11x11x17x439

Exemple de calculatrice

22voto

Yuriy Faktorovich Points 33347

C #, 69

x est le numéro d'entrée

 int i=2;while(x>1)if(x%i++==0){x/=--i;Console.Write(i+(x>1?"x":""));};
 

Avec comprend:

 using system;
namespace nameSP
{
   class Program
   {
     static void Main(string[] args)
     { 
        int i=2;while(x>1)if(x%i++==0){x/=--i;Console.Write(i+(x>1?"x":""));};
     }
   }
}
 

20voto

Jimmy Points 35501

Réponse J obligatoire (2 caractères):

 q:
 

15voto

Alex B Points 34304

ANSI C, 79 caractères

 main(d,i){for(d+=scanf("%d",&i);i>1;i%d?++d:printf("%d%c",d,(i/=d)>1?'x':10));}
 

11voto

Paxinum Points 1010

Mathematica (15 caractères avec crochets):

 FactorInteger
 

Exemple:

 FactorInteger[42]

{{2, 1}, {3, 1}, {7, 1}}
 

10voto

Triptych Points 70247

Python: 77 caractères avec entrée et sortie

 d,s,n=2,'',input()
while n>1:
 if n%d:d+=1
 else:s+='%dx'%d;n/=d
print s[:-1]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X