Red de conocimiento informático - Conocimiento de la instalación - Pregunte por el código de programación Csharp

Pregunte por el código de programación Csharp

Llamar

Console.WriteLine(GoldbachConjecture(6, 100, 5, "{0}={1} {2};"));

//Conjetura de Goldbach

cadena estática pública GoldbachConjecture(int startNumber, int endNumber, int maxLength, string formatString)

{

Resultado de StringBuilder = new StringBuilder () ;

Listlt; intgt; primeNumbers = GetPrimeNumber(endNumber);

//Excluye el número 2

primeNumbers.RemoveAt(0);

p>

//Números pares dentro del intervalo del bucle

int index = 0;

for (int i = Math.Max(6, startNumber); i lt; = endNumber ; i = 2)

{

// Genera el resultado dividido

foreach (int primeNumber in primeNumbers)

{

//Salir del bucle cuando la suma de los dos números exceda el rango

//if ((i - primeNumber) lt; 0)

// break;

//Determina si el otro valor está en la lista de números primos después de restar un número primo del número par actual

if (!primeNumbers.Contains(i - primeNumber))

continuar

// Genera el formato especificado

result.AppendFormat(formatString, i, primeNumber, i - primeNumber

//Solo salida una vez. Si desea generar todas las posibilidades, descomente la primera línea del bucle y comente la siguiente línea.

break;

}

// Salida de elementos maxLength por línea

if ( index maxLength == 0)

{

resultado.AppendLine();

}

}

return resultado.ToString();

}

//Obtiene todos los números primos (números primos) menores que endNumber

public static Listlt; GetPrimeNumber(int endNumber)

{

Listlt; intgt;primeNumbers = new Listlt ();

primeNumbers.Add(2); i lt ; endNumber; i = 2)

{

bool isPrimeNumber = true

// Juzga si el número primo antes del valor actual es divisible

foreach (int número primo en números primos)

{

//Si es divisible, no es número primo

if ( i NúmeroPrime == 0)

{

esNúmeroPrime = false

break

}

/ / Juicio de raíz cuadrada, reducir el número de operaciones

p>

if (primeNumber gt; Math.Sqrt(i))

{

break

p>

}

}

//Si es un número primo

if (isPrimeNumber)

{

números primos.Add(i);

}

}

devuelve números primos

}