Qu'est-ce qu'un Prime Square?
Un carré premier est un carré où les quatre arêtes sont des nombres premiers différents.
Mais lesquels?
Et comment les construisons-nous?
Voici un exemple d'un Prime Square 4x4
1009
0 0
3 0
1021
Nous commençons d'abord par le coin supérieur gauche. Nous travaillons dans le sens horaire .
Nous choisissons le plus petit nombre premier ayant des 4
chiffres qui est 1009 .
Ensuite, nous avons besoin du plus petit nombre premier ayant des 4
chiffres, qui commence par a 9
. C'est 9001
Le troisième nombre premier (4 chiffres) doit avoir 1
comme dernier chiffre (car 9001 se termine par 1
)
et doit également être le plus petit nombre premier à 4 chiffres avec cette propriété qui n'a pas été utilisée auparavant comme bord .
Ce nombre premier est 1021
Le quatrième nombre premier doit avoir des 4
chiffres, commencer par un 1
(car 1009 commence par a 1
) et se terminer par un 1
(car 1021 commence par a 1
)
Le plus petit nombre premier à 4 chiffres avec cette propriété qui n'a pas été utilisé auparavant comme bord est 1031
Ta tâche
Vous recevrez un entier à n
partir de 3 to 100
Ce nombre sera les dimensions du n x n
carré
Ensuite, vous devez sortir ce carré exactement sous la forme des cas de test suivants
Cas de test
n=3
Output
101
3 0
113
n=5
Output
10007
0 0
0 0
9 0
10061
n=7
Output
1000003
0 0
0 0
0 0
0 0
8 1
1000037
n=10
Output
1000000007
0 0
0 0
0 0
0 0
0 0
0 0
1 0
8 0
1000000021
n=20
Output
10000000000000000051
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
9 8
10000000000000000097
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Vous pouvez l'imprimer sur STDOUT ou le renvoyer en tant que résultat de fonction.
- Un programme complet ou une fonction sont acceptables.
- N'importe quelle quantité d'espace blanc étranger est acceptable, tant que les chiffres sont alignés de manière appropriée
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
EDIT
Ceci est possible pour tous n
Voici les nombres premiers pourn=100
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000289
9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000711
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002191
Et pour ceux d'entre vous que vous ne pensez pas que ce soit possible, voici TOUS les cas de test
n
: P? Pas un problème avec le défi, juste curieux.n
: pourn
= 1, nous ne pouvons pas satisfaire la contrainte que les quatre arêtes sont des nombres premiers différents, tandis que pourn
= 2, nous sommes obligés de choisir 11,13,23, à quel point l'arête finale est 12 qui est composite. Je n'ai pas de preuve qu'il est possible pour tousn
> 2, mais je serais choqué d'apprendre autrement: informellement, plus il y a de chiffres, plus il y a de "marge de manœuvre" pour satisfaire les contraintes.n
il y a au moins deux nombres premiersn
commençant par 1 et se terminant par chacun de ces chiffres (nous pouvons donc choisir un bord inférieur) et il y a au moins trois nombres premiers commençant par 1 et se terminant par 1 (nous pouvons donc choisir un Bord gauche).Réponses:
05AB1E ,
646356534846 octets-1 octet grâce à @ Mr.Xcoder
-5 octets grâce à @Grimy .
Explication:
Voir cette astuce de mes 05AB1E (section Comment compresser les grands entiers? ) Pour comprendre pourquoi
Ž9¦
est2460
. Et consultez cette astuce 05AB1E pour comprendre comment le carré estΛ
sorti avec le canevas intégré.NĀiR}¦
I¯JŽ9¦SΛ
n=4
[1009,9001,1021,1031]
[1009,"001","201","301"]
Λ
I
¯J
"1009001201301"
n=4
Ž9¦S
[2,4,6,0]
[→,↓,←,↑]
la source
4F°ÅP¯KIù.Δ1sЮθÅ¿Š®θÅ?Šθ)¯gè}©ˆ}ð¯2ô`€R«€¦J«Ž9¦SΛ
49:°ÅPIùć4FÐN1›iR}¦ˆθUKD.ΔÐθsXÅ?‚sXÅ¿ª¯gè]Ið¯J«Ž9¦SΛ
48:°ÅPIùćÐ4FˆθUKD.ΔÐθsXÅ?‚sXÅ¿ª¯gè}ÐNĀiR}¦}I¯JŽ9¦SΛ
ÐθsXÅ?‚sXÅ¿ª
àθyXÅ?yXÅ¿)
. Je ne sais pas exactement pourquoi)
fonctionne dans le cadre de la boucle, car je m'attendais à ce qu'il encapsule également la liste principale dans sa liste lors de la première itération. Mais même sans cela, l'utilisation deyy
au lieu deÐss
sauve toujours 1 octet. :)05AB1E ,
35333231 octets-1 octet grâce à Kevin Cruijssen
Essayez-le en ligne!
Explication:
la source
Θ
atNΘ
. Seul1
est vrai en 05AB1E, doncif N
etif N == 1
sont les mêmes.Θi
est l'équivalent 05AB1E deif (cond == true)
...Θ
peut toujours être utile si vous voulez tout convertir sauf1
en0
. Mais pour l'instruction ifi
, ce n'est pas vraiment nécessaire, tout comme votre pseudocode avec== true
.JavaScript (ES8),
205 ...185177173 octetsEssayez-le en ligne!
Comment?
Étape # 1: calcul des 4 nombres premiers
Étape # 2: formatage de la sortie
la source
Gelée ,
8982 octetsEssayez-le en ligne!
Pourrait certainement être golfeur, mais fonctionne efficacement pour les grands nombres.
la source
Gelée , 59 octets
Essayez-le en ligne!
Réponse de Jelly plus courte mais beaucoup moins efficace.
la source
JavaScript, 484 octets
La dernière fonction sans nom renvoie l'art ASCII.
Code d'origine
Complexité temporelle optimale et moyenne: Ω (100 n n) dans la notation des grands oméga de Knuth (n étapes pour soustraire n nombres de chiffres, 10 n soustractions par contrôle de divisibilité, 10 n contrôle de divisibilité pour contrôle principal et Ω (1) contrôles principaux effectués ).
Pire complexité du temps: Ω (1000 n n) dans la notation des grands oméga de Knuth (n étapes pour soustraire n nombres numériques, 10 n soustractions par contrôle de divisibilité, 10 n contrôle de divisibilité pour contrôle principal et 10 n contrôles principaux effectués).
Je suppose que cela
n=100
prend environ 10 203 calculs.Sidenote: J'ai validé la syntaxe en utilisant UglifyJS 3, et il a joué beaucoup mieux que moi, économisant 47,13% de plus et gagnant 282 octets. Cependant, j'ai décidé de ne pas en faire mon score car j'ai l'impression que c'est de la triche.
Il vient de supprimer la dernière fonction car elles ne sont jamais utilisées. En fait, cela a empiré s'il était attribué et non supprimé, à l'exclusion du code supplémentaire que j'ai ajouté.
la source