
Widest Roman Prime - kellysutton
https://blog.soff.es/widest-roman-prime
======
raffy
Simple solution in Mathematica:
[http://i.imgur.com/2iBIRwN.png](http://i.imgur.com/2iBIRwN.png)

~~~
jdiez17
I like this solution the most. Some questions on @wacnt (like this one) can't
be answered because Wolfram Alpha's NLP fails to recognize the algorithm
implicit in the question, but if it was able to translate the problem
statement into a machine-readable form, this would be very close to it.

Edit: Some background on @wacnt:
[https://docs.google.com/document/d/17me2A-SG5Z0Mr9Xd-a1kT1HQ...](https://docs.google.com/document/d/17me2A-SG5Z0Mr9Xd-a1kT1HQlWZL5rw3r6Hls6XPfO4)

------
tolmasky
Here it is in JavaScript (feel free to play around with it):
[https://tonicdev.com/tolmasky/widest-roman-
prime](https://tonicdev.com/tolmasky/widest-roman-prime)

Took me only a couple of minutes since it was mainly just searching for the
right npm packages to piece together. Say what you like about micro libraries,
but for explorations like this it really makes JavaScript in a league of its
own.

~~~
ktRolster
> Say what you like about micro libraries, but for explorations like this it
> really makes JavaScript in a league of its own.Say what you like about micro
> libraries, but for explorations like this it really makes JavaScript in a
> league of its own.

Indeed, we spend so much time arguing about programming languages, when in
reality the presence or absence of libraries is much more important.

~~~
epalmer
> Indeed, we spend so much time arguing about programming languages, when in
> reality the presence or absence of libraries is much more important.

+1,+1

------
lisper
Should have just done it in Common Lisp. Roman numeral formatting is built-in.

    
    
        ? (format nil "~@r" 3989)
        "MMMCMLXXXIX"

~~~
melloclello
I'd imagine it's not easy to render the text out into Times without UIKit or
equivalent? Pretty cool that it has that built in, though.

~~~
akkartik
But would the font make any difference to the answer?

~~~
astrange
It asks for the widest string in pixels in a proportional font, so the
different letters matter.

------
mgraczyk
The problem is underspecified because it does not define under which renderer
the text should be measured. Kerning could reorder some of the close ties.

------
lziest
I thought 3888 will be wider than 3889 because VIII certainly feels wider than
IX but I am not font expert so I don't know

~~~
khedoros
But it wouldn't be a prime.

~~~
lziest
ah missed that. Thanks!

------
kwhitefoot
Strictly speaking that's the widest modern usage Roman prime under 4000.

The actual Romans were inconsistent in their use of the subtractive principle,
see [http://www.straightdope.com/columns/read/1371/what-is-the-
pr...](http://www.straightdope.com/columns/read/1371/what-is-the-proper-way-
to-style-roman-numerals-for-the-1990s)

So there might be ways to construct a wider one.

------
agentgt
Its funny with all these new sort of bracket like functional programming
languages with similar syntax it actually took me a minute to figure out that
the code is Swift(probably lack of experience)... Looks like Scala.. no scala
doesn't use let.. is it Rust.. nope not Rust.. rust does not use "import"..
can't be Ocaml or F# because of no brackets... ah UIKit.

------
revx
The next question that popped into my head is, what's the thinnest Roman
Prime?

Took me about sixty seconds before I realized that was a stupid question :)

~~~
dewiz
Depends, monospaced font or not? It's either 2 or 5

------
melloclello
Wow, Swift is perfect for doing this kind of thing

~~~
fishnchips
So it seems but mostly because of the UI component where you can calculate the
width of the resulting text without having to hardcode the width of individual
characters.

------
AstroJetson
The challenge wasn't print the largest prime under 4000, it was find the prime
with the most digits. So the lisper example gave the wrong answer. Still need
to generate the prime, count the digits and return the one with the most
digits. No sure that the lisp version would be less lines of code, but I'll
guess a recursive version would be close

~~~
Buge
It's not to find the one with the most digits. It's to find the widest one in
Times New Roman. Times New Roman is not a fixed-width font, so the widest one
might have less digits than some other one. For example I is less wide than M.

~~~
cyphar
Haha. Funny.

