ae galera to precisando de uma ajudinha, sera que alguem pode me dar uma ajuda,
os exercicios q tenho q fazer eh o seguinte:
Insira na classe Matemática um método que informe se um determinado número é primo. O número é primo quando é divisível de forma exata apenas por ele e por 1. Em seguida, faça um programa principal que informe todos os números primos entre 2 e 200 e a quantidade de números primos encontrados.
-Um professor tem a necessidade de informar o código e a nota final de todos os seus alunos. Baseado nisto, informe a maior e menor nota da turma e a média aritmética das notas, sabendo-se que para encerrar a entrada de dados no código do aluno o professor informa um valor igual a 0(zero).
Vamos lah seus problemas sãoo simples… Ng vai resolver eles por você mas vá fazendo aí e poste suas dúvidas que o pessoal te ajuda…
Números primos eh facinho… 1,3,5,7,11,13,17 …e assim vai…
Quanto ao segundo problema, você pode criar uma classe Aluno, ir adicionando os codigos e notas, e jogando os alunos num Array…
Agora se vira para entender e explicar para seu professor, vc queria um programa que mostrasse os primos, ta ai ele… se vc quer uma coisa mais simples, faz ai e posta as duvidas que vc tem para fazer
O segundo problema, hmmm vou procurar uma solução no estilo da dos números primos, se achar eu posto ai.
import java.util.ArrayList;
import java.util.List;
class Prime {
private int p;
private boolean isPrime = false;
private List<Integer> rList = new ArrayList<Integer>();
private List<Integer> qList = new ArrayList<Integer>();
private int rZeuge;
public Prime(int number) {
p = number;
LucasFindR();
PFZ();
LucasTestFast();
return;
}
public static void main(String[] args) {
List<Integer> primos = new ArrayList<Integer>();
for (int i = 2; i <= 200; i++) {
if (new Prime(i).isPrime()) {
primos.add(i);
}
}
for (Integer primo : primos) {
System.out.println(primo);
}
}
public boolean isPrime() {
return isPrime;
}
public int getRZeuge() {
return rZeuge;
}
public List getQList() {
return qList;
}
public List getRList() {
return rList;
}
public List LucasComplete() {
List<List<String>> result = new ArrayList<List<String>>();
int i, j, q, r;
q = 0;
for (i = 0; i < rList.size(); i++) {
result.add(new ArrayList<String>());
r = rList.get(i);
for (j = 0; j < qList.size(); j++) {
q = qList.get(j);
if (Formel(r, (p - 1) / q, p) == 1) {
result.get(result.size() - 1).add("-");
} else {
result.get(result.size() - 1).add("+");
}
}
}
return result;
}
public List LucasFindR() {
int r;
for (r = 2; r < p; r++) {
if (Bedingung1(r)) {
rList.add(r);
}
}
return rList;
}
public List PFZ() {
qList = PFZ(p - 1);
return qList;
}
private void LucasTestFast() {
int r;
for (r = 2; r < p; r++) {
if (Bedingung1(r)) {
if (Bedingung2(r)) {
rZeuge = r;
isPrime = true;
return;
}
} else {
return;
}
}
return;
}
private boolean Bedingung1(int r) {
if (Formel(r, p - 1, p) == 1)
return true;
else
return false;
}
private boolean Bedingung2(int r) {
int i, q = 0;
for (i = 0; i < qList.size(); i++) {
if (q != qList.get(i)) {
q = qList.get(i);
if (Formel(r, (p - 1) / q, p) == 1)
return false;
}
}
return true;
}
private List<Integer> PFZ(int x) {
int q;
List<Integer> PFTemp = new ArrayList<Integer>(10);
for (q = 2; q < x; q++) {// test all possible factors
if (x % q == 0) {// q is prime factor of x
PFTemp.add(q);
// eliminate this factor
x /= q;
q--;
}
}
PFTemp.add(x);
return PFTemp;
}
int Formel(int a, int b, int c) {
int k, bitmask, d, i;
k = 30;
bitmask = 0x40000000;
d = 1;
for (i = k; i >= 0; i--) {
d = (d * d) % c;
if ((b & bitmask) > 0) {
d = (d * a) % c;
}
bitmask /= 2;
}
return (d);
}
}