using
System;
using
System.Linq;
using
System.Collections;
using
System.Collections.Generic;
class
HelloWorld {
static
bool
isPrime(
char
c)
{
return
(c ==
'2'
|| c ==
'3'
|| c ==
'5'
|| c ==
'7'
);
}
static
char
[] decrease(
char
[] s,
int
i)
{
if
(s[i] <=
'2'
) {
s = s.Where((source, index) => index != i).ToArray();
s[i] =
'7'
;
}
else
if
(s[i] ==
'3'
) {
s[i] =
'2'
;
}
else
if
(s[i] <=
'5'
) {
s[i] =
'3'
;
}
else
if
(s[i] <=
'7'
) {
s[i] =
'5'
;
}
else
{
s[i] =
'7'
;
}
return
s;
}
static
string
primeDigits(
char
[] s)
{
for
(
int
i = 0; i < s.Length; i++) {
if
(isPrime(s[i]) ==
false
) {
while
(i >= 0 && s[i] <=
'2'
) {
i = i - 1;
}
if
(i < 0) {
i = 0;
s = decrease(s, i);
}
else
{
s = decrease(s, i);
}
for
(
int
j = i + 1; j < s.Length; j++) {
s[j] =
'7'
;
}
break
;
}
}
return
new
string
(s);
}
static
void
Main()
{
char
[] s = {
'4'
,
'5'
};
Console.WriteLine(primeDigits(s));
char
[] s1 = {
'1'
,
'0'
,
'0'
,
'0'
};
Console.WriteLine(primeDigits(s1));
char
[] s2 = {
'7'
,
'7'
,
'2'
,
'1'
};
Console.WriteLine(primeDigits(s2));
char
[] s3 = {
'7'
,
'2'
,
'2'
,
'1'
};
Console.WriteLine(primeDigits(s3));
char
[] s4
= {
'7'
,
'4'
,
'5'
,
'4'
,
'6'
,
'7'
,
'8'
,
'9'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'8'
,
'9'
,
'7'
,
'4'
,
'8'
,
'5'
,
'9'
,
'3'
,
'2'
,
'7'
,
'5'
,
'8'
,
'9'
,
'7'
,
'8'
,
'9'
,
'4'
,
'7'
,
'0'
,
'8'
,
'9'
,
'2'
,
'7'
,
'6'
,
'8'
,
'0'
};
Console.WriteLine(primeDigits(s4));
}
}