Contador de primos consecutivos
Preciso de um algoritmo que gera 4 numeros primos consecutivos, a partir de uma funcao que descobre se um numero é ou nao primo (ja tenho) e um numero n que o usuario fornece para a condicao do primeiro while. Alguem consegue me ajudar?
Tenho uma parte do algoritmo feita por mim que nao funciona:
printf("n: ");
scanf("%d", &n);
n1 = 2;
n2 = 3;
n3 = 5;
n4 = 7;
nant = 1;
while ((n1 * n1) + (n2 * n2) + (n3 * n3) + (n4 * n4) < n)
{
while (prim(n1) == 1 && n1 <= nant)
{
n1 += 1;
}
while (prim(n2) == 1 && n2 <= n1)
{
n2 += 1;
}
while (prim(n3) == 1 && n3 <= n2)
{
n3 += 1;
}
while (prim(n4) == 1 && n4 <= n3)
{
n4 += 1;
}
nant += 1;
}
Tenho uma parte do algoritmo feita por mim que nao funciona:
printf("n: ");
scanf("%d", &n);
n1 = 2;
n2 = 3;
n3 = 5;
n4 = 7;
nant = 1;
while ((n1 * n1) + (n2 * n2) + (n3 * n3) + (n4 * n4) < n)
{
while (prim(n1) == 1 && n1 <= nant)
{
n1 += 1;
}
while (prim(n2) == 1 && n2 <= n1)
{
n2 += 1;
}
while (prim(n3) == 1 && n3 <= n2)
{
n3 += 1;
}
while (prim(n4) == 1 && n4 <= n3)
{
n4 += 1;
}
nant += 1;
}
Thiago
Curtidas 0
Respostas
Marllon Ramos
27/03/2020
Vê se essa solução te ajuda, segue:
int[] numeros = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
foreach (var numero in numeros)
{
int divisor = 1;
int qtdDeDivisoes = 0;
while (numero >= divisor)
{
qtdDeDivisoes += numero % divisor == 0 ? 1 : 0;
divisor++;
}
if (qtdDeDivisoes < 3)
Console.WriteLine(numero);
}
int[] numeros = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
foreach (var numero in numeros)
{
int divisor = 1;
int qtdDeDivisoes = 0;
while (numero >= divisor)
{
qtdDeDivisoes += numero % divisor == 0 ? 1 : 0;
divisor++;
}
if (qtdDeDivisoes < 3)
Console.WriteLine(numero);
}
GOSTEI 0