<script>
function
PrimeDigitNumber(N,size)
{
let ans =
new
Array(size);
let ns = 0;
let small = 0;
let i;
let p = [ 0, 0, 1, 1, 0, 1, 0, 1, 0, 0 ];
let prevprime = [ 0, 0, 0, 2, 3, 3, 5, 5, 7, 7 ];
if
(size == 1)
{
ans[0] = String.fromCharCode(prevprime[N[0].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0));
ans[1] =
'\0'
;
return
ans;
}
if
(N[0] ==
'1'
) {
for
(i = 0; i < size - 1; i++)
ans[i] =
'7'
;
ans[size - 1] =
'\0'
;
return
ans;
}
for
(i = 0; i < size && small == 0; i++) {
if
(p[N[i].charCodeAt(0) -
'0'
.charCodeAt(0)] == 1) {
ans[ns++] = N[i];
}
else
{
if
(p[N[i] -
'0'
] == 0 &&
prevprime[N[i].charCodeAt(0) -
'0'
.charCodeAt(0)] != 0) {
ans[ns++] = String.fromCharCode(prevprime[N[i].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0));
small = 1;
}
else
if
(p[N[i].charCodeAt(0) -
'0'
.charCodeAt(0)] == 0 &&
prevprime[N[i].charCodeAt(0) -
'0'
.charCodeAt(0)] == 0) {
let j = i;
while
(j > 0 && p[N[j].charCodeAt(0) -
'0'
.charCodeAt(0)] == 0 &&
prevprime[N[j].charCodeAt(0) -
'0'
.charCodeAt(0)] == 0) {
ans[j] = N[j] =
'7'
;
N[j - 1] = String.fromCharCode(prevprime[N[j - 1].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0));
ans[j - 1] = N[j - 1];
small = 1;
j--;
}
i = ns;
}
}
}
if
(small == 0) {
if
(prevprime[N[size - 1].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0) !=
'0'
.charCodeAt(0))
ans[size - 1] = String.fromCharCode(prevprime[N[size - 1].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0));
else
{
let j = size - 1;
while
(j > 0 && prevprime[N[j].charCodeAt(0) -
'0'
.charCodeAt(0)] == 0) {
ans[j] = N[j] =
'7'
;
N[j - 1] = String.fromCharCode(prevprime[N[j - 1].charCodeAt(0) -
'0'
.charCodeAt(0)] +
'0'
.charCodeAt(0));
ans[j - 1] = N[j - 1];
small = 1;
j--;
}
}
}
for
(; ns < size; ns++)
ans[ns] =
'7'
;
ans[ns] =
'\0'
;
let k = 0;
while
(ans[k] ==
'0'
)
k++;
return
ans.join(
""
);
}
let N=
"1000"
.split(
""
);
let size=N.length;
document.write(PrimeDigitNumber(N, size).join(
""
));
</script>