Escreva um programa que computa o número de diferentes fatores primos de um inteiro positivo.
Entrada
A entrada consistirá de uma série de inteiros positivos. Cada linha possui somente um número.
O valor máximo de um número é 1000000. O fim da entrada é indicado por um número igual a 0.
Esse número não deve ser considerado como parte do conjunto de teste.
Saída
O programa deve imprimir cada resultado em uma linha diferente, seguindo o formado dado
no exemplo de saída.
Exemplo:
Entrada: Saída
289384 289384 : 3
930887 930887 : 2
692778 692778 : 5
636916 636916 : 4
747794 747794 : 3
238336 238336 : 3
885387 885387 : 2
760493 760493 : 2
516650 516650 : 3
641422 641422 : 3
Resposta:
#include <stdio.h>
int main(){
int number, n = 2, c, b=0, numv, cont = 0;
do{
scanf("%d",&number);
numv = number;
if (numv<= 1000000 && numv>0){
while (number > 1){
for (c=2; c<n; c++){
if (n%c==0){ b=1;
break; }
else{ b=0; } }
if (b==0){
if (number%n==0){ number = number/n; cont++; }
while (number%n==0){ number = number/n; } } n++; }
printf("%d : %d\n",numv,cont); cont = 0; n = 2; } }
int main(){
int number, n = 2, c, b=0, numv, cont = 0;
do{
scanf("%d",&number);
numv = number;
if (numv<= 1000000 && numv>0){
while (number > 1){
for (c=2; c<n; c++){
if (n%c==0){ b=1;
break; }
else{ b=0; } }
if (b==0){
if (number%n==0){ number = number/n; cont++; }
while (number%n==0){ number = number/n; } } n++; }
printf("%d : %d\n",numv,cont); cont = 0; n = 2; } }
while (numv != 0);
return 0; }
return 0; }
0 comentários:
Postar um comentário