Boa tarde.
Alguém podia explicar como se faz em programação c++ que os números entre 1 a 100 sejam primos e depois soma os números primos.
Boa tarde.
Alguém podia explicar como se faz em programação c++ que os números entre 1 a 100 sejam primos e depois soma os números primos.
Fazer com que um número seja primo ou verificar se um número é primo?
Verificar que números sejam primos
#include <stdio.h>
int isPrime(int n);
int main() {
int soma = 0;
int numero;
printf("Primos:\n");
for (numero = 1; numero <= 100; numero++) {
if (isPrime(numero)) {
soma += numero;
printf(" %d\n", numero);
}
}
printf("Soma: %d\n", soma);
return 0;
}
int isPrime(int n) {
if (n < 2) {
return 0;
}
if (n < 4) {
return 1;
}
if (n % 2 == 0 || n % 3 == 0) {
return 0;
}
int i;
for (i = 5; i * i <= n; i += 6) {
if (n % i == 0) {
return 0;
}
if (n % (i + 2) == 0) {
return 0;
}
}
return 1;
}
senhor voce podia meter ao lado do codigo o que significa ou como funciona por favor.
#include <stdio.h>
int isPrime(int n);
int main() {
int soma = 0; // variável soma
int numero; // variável numero
printf("Primos:\n");
for (numero = 1; numero <= 100; numero++) { laço que vai do numero 1 ao numero 100
if (isPrime(numero)) { // verifica se o numero é primo
soma += numero; // soma o numero
printf(" %d\n", numero); // imprime o numero
}
}
printf("Soma: %d\n", soma); // imprime a soma
return 0; // encerra o programa com sucesso
}
int isPrime(int n) { // função pra verificar se o numero informado é primo, se for primo, retorna 1, senão, retorna 0
if (n < 2) { // verifica se o numero é menor que 2
return 0; // se for, não é primo, retorna 0
}
if (n < 4) { // verifica se o numero é menor que 4, só pode ser o 3
return 1; // é primo, retorna 1
}
if (n % 2 == 0 || n % 3 == 0) { // verifica se o numero é divisível por 2 ou por 3
return 0; // não é primo, retorna 0
}
int i;
for (i = 5; i * i <= n; i += 6) { // laço que vai de 5 até a raíz quadrada do numero informado
if (n % i == 0) { // verifica se o numero é divisível pelo contador
return 0; // não é primo, retorna 0
}
if (n % (i + 2) == 0) {
return 0;
}
}
return 1;
}
Boa tarde o senhor podia fazer em c++ e não dá para fazer numa maneira mais simples.
Cumprimentos
Senhor dá para fazer esta maneira
if(numeros % 2 == 0){
cout<<“Os numeros pares são:”<<numeros<<endl;
}
if(numeros % 2 == 1){
cout<<“Os numeros impares são:”<<numeros<<endl;
}
O problema que eu não sei fazer a soma entre pare ou impar
Mas você quer saber se um número é par ou ímpar?
Para verificar se um número é ímpar, o teste correto seria "if (numeros % 2 != 0)".
O enunciado do seu tópico diz que você quer saber se um número é primo.
#include <iostream>
using namespace std;
bool isPrime(int n);
int main(int argc, char** argv) {
int soma = 0;
int numero;
cout << "Primos:\n";
for (numero = 1; numero <= 100; numero++) {
if (isPrime(numero)) {
soma += numero;
cout << " " << numero << "\n";
}
}
cout << "Soma: " << soma << "\n";
return 0;
}
bool isPrime(int n) {
if (n < 2) {
return false;
}
if (n < 4) {
return true;
}
if (n % 2 == 0 || n % 3 == 0) {
return false;
}
int i;
for (i = 5; i * i <= n; i += 6) {
if (n % i == 0) {
return false;
}
if (n % (i + 2) == 0) {
return false;
}
}
return true;
}
Essa é uma das formas mais simples e rápidas de calcular números primos.
Se quiser, pode estudar o Crivo de Erastótenes, e implementar de outra forma.