1 to 100 looks like this
I, II, III, IV, V, VI, VII, VIII, VIV, X, XI, XII, XIII, XIV, XV, XVI, XVII, XVIII, XVIV, XX, XXI, XXII, XXIII, XXIV, XXV, XXVI, XXVII, XXVIII, XXVIV, XXX, XXXI, XXXII, XXXIII, XXXIV, XXXV, XXXVI, XXXVII, XXXVIII, XXXVIV, XC, XCI, XCII, XCIII, XCIV, XCV, XCVI, XCVII, XCVIII, XCVIV, L, LI, LII, LIII, LIV, LV, LVI, LVII, LVIII, LVIV, LX, LXI, LXII, LXIII, LXIV, LXV, LXVI, LXVII, LXVIII, LXVIV, LXX, LXXI, LXXII, LXXIII, LXXIV, LXXV, LXXVI, LXXVII, LXXVIII, LXXVIV, XC, XCI, XCII, XCIII, XCIV, XCV, XCVI, XCVII, XCVIII, XCVIV, LXC, LXCI, LXCII, LXCIII, LXCIV, LXCV, LXCVI, LXCVII, LXCVIII, LXCVIV, C
Function To-Roman{
Param([Parameter(Mandatory=$true)][int]$int)
[int]$M = 1000
[int]$D = 500
[int]$C = 100
[int]$L = 50
[int]$X = 10
[int]$V = 5
[int]$I = 1
If($int -eq 0){Throw "Zero does not exist in roman culture.";Return 404}
$done = $false
While($done -eq $false){
#$Roman = $roman+(addup $int $m "M")
If($int -ge $m){
$n = Loopy $int $m
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"M"}
}
If($int -ge $D){
$n = Loopy $int $D
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"D"}
}
If($int -ge $C){
$n = Loopy $int $C
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"C"}
}
If($int -ge $L){
$n = Loopy $int $L
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"L"}
}
If($int -ge $X){
$n = Loopy $int $X
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"X"}
}
If($int -ge $V){
$n = Loopy $int $V
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"V"}
}
If($int -ge $I){
$n = Loopy $int $I
$int = $n[0]
1..$n[1] | %{$Roman = $Roman+"I"}
}
If($roman.Contains("CCCC")){$roman=$Roman.Replace("CCCC","CD")}
If($roman.Contains("XXXX")){$roman=$Roman.Replace("XXXX","XC")}
If($roman.Contains("LLLL")){$roman=$Roman.Replace("LLLL","XL")}
If($roman.Contains("LXXX")){$roman=$Roman.Replace("LXXX","XC")}
If($roman.Contains("VIV")){$roman=$Roman.Replace("VIV","IX")}
If($roman.Contains("IIII")){$roman=$Roman.Replace("IIII","IV")}
If($int -eq 0){$done = $true}
}
Return $Roman
}
Function Loopy{
Param(
[int]$int,
[int]$number
)
$notDone = $true
$loops = 0
While($notDone){
If($int-$number -ge 0){$int=$int-$number;$loops++}
ElseIf($int-$number -lt $number){$notDone = $false}
}
return $int,$loops
}
1..1000 | %{"$(To-Roman $_) $_"}