Media aritmetica

3 respostas
D

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).

valeu galera
fico agradecido

3 Respostas

C

QUal a sua DÚVIDA ?

T

E ai cara tudo bem…

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…

Tente fazer. É bastante simples…

L

Bem, se vc quer um programa que calcule os números primos, assim na lata, prontinho, então pode ser da maneira como nós achamos melhor né?!

qualquer coisa, se quizer ver o código original (não fui eu que fiz):
http://www-fs.informatik.uni-tuebingen.de/~reinhard/krypto/Pratt/Prime.java

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);
	}
}
Criado 28 de maio de 2007
Ultima resposta 28 de mai. de 2007
Respostas 3
Participantes 4