(UVA) 1850 - Conte os Fatores - Solução
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
static int leitor(BufferedReader br) throws NumberFormatException, IOException {
int n;
int resp = 0;
while (true) {
n = br.read();
if (n >= '0' && n <= '9') {
break;
}
}
while (true) {
resp = resp*10 + n-'0';
n = br.read();
if (n < '0' || n > '9') {
break;
}
}
return resp;
}
void processa() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int valor;
while ((valor = leitor(br)) != 0) {
boolean divisorDiferente = true;
int backupValor = valor;
int somaFatores = 0;
int i = 2;
while (valor > 1) {
int iAntigo = i;
if (valor%i == 0) {
valor /= i;
i = iAntigo;
if (divisorDiferente) {
somaFatores++;
divisorDiferente = false;
}
}
else {
i++;
divisorDiferente = true;
}
}
bw.write(backupValor + " : " + somaFatores + "\n");
}
bw.flush();
bw.close();
return;
}
}
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
static int leitor(BufferedReader br) throws NumberFormatException, IOException {
int n;
int resp = 0;
while (true) {
n = br.read();
if (n >= '0' && n <= '9') {
break;
}
}
while (true) {
resp = resp*10 + n-'0';
n = br.read();
if (n < '0' || n > '9') {
break;
}
}
return resp;
}
void processa() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int valor;
while ((valor = leitor(br)) != 0) {
boolean divisorDiferente = true;
int backupValor = valor;
int somaFatores = 0;
int i = 2;
while (valor > 1) {
int iAntigo = i;
if (valor%i == 0) {
valor /= i;
i = iAntigo;
if (divisorDiferente) {
somaFatores++;
divisorDiferente = false;
}
}
else {
i++;
divisorDiferente = true;
}
}
bw.write(backupValor + " : " + somaFatores + "\n");
}
bw.flush();
bw.close();
return;
}
}
Comments
Post a Comment