Verificação de Número Primo
Dado um inteiro positivo, determine se ele é primo.
Entrada: A primeira linha contém um inteiro N. As próximas N linhas contêm um número inteiro x cada.
Saída: Para cada valor x, imprima "yes" se for primo, caso contrário "no".
Exemplo:
Entrada:
3
897
23
97
Saída:
no
yes
yes
A verificação eficiente usa iteração até a raiz quadrada do número. Evita-se números menores ou iguais a 1 e interrompe-se o laço assim que um divisor é encontrado.
#include <iostream>
using namespace std;
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i)
if (num % i == 0) return false;
return true;
}
int main() {
int n, x;
cin >> n;
while (n--) {
cin >> x;
cout << (isPrime(x) ? "yes" : "no") << '\n';
}
return 0;
}
Aproximação da Constante e
Calcule o valor aproximado de e usando a série: e = 1 + 1/1! + 1/2! + 1/3! + ... Continue somando termos enquanto o valor absoluto do termo atual for maior ou igual a um limiar threshold.
Entrada: Um número real threshold (mínimo 1e-10).
Saída: O valor aproximado de e com 6 casas decimais e o número total de termos somados, separados por espaço.
Exemplo:
Entrada:
0.00001
Saída:
2.718279 9
O cálculo aproveita a relação recursiva entre fatoriais para evitar recálculos. O primeiro termo (1) já está incluído na soma inicial.
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
double threshold;
cin >> threshold;
if (threshold > 1.0) {
cout << fixed << setprecision(6) << 1.0 << " 1";
return 0;
}
double term = 1.0; // 1/0!
double sum = 1.0;
int count = 1;
while (term >= threshold) {
term /= count; // term agora é 1/count!
if (term < threshold) break;
sum += term;
count++;
}
cout << fixed << setprecision(6) << sum << " " << count;
return 0;
}
Soma dos Dígitos
Dado um número inteiro positivo, calcule a soma de seus dígitos decimais.
Entrada: Vários números inteiros (um por linha), cada um menor que 20000.
Saída: Para cada número, imprima a soma de seus dígitos.
Exemplo:
Entrada:
10
99
Saída:
1
18
O algoritmo extrai dígitos repetidamente usando módulo 10 e divisão inteira por 10.
#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
int total = 0;
while (n > 0) {
total += n % 10;
n /= 10;
}
cout << total << '\n';
}
return 0;
}