Advertisement
nRikee

Factorizando (by kyrexar)

Apr 23rd, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1.     #include <stdio.h>
  2.     #include <stdlib.h>
  3.  
  4.     int primo ( int a ){
  5.         int b, p, i=0;
  6.  
  7.         for ( b=a ; b>=1 ; b-- ) if ( a%b==0 ) i++;
  8.         if ( i>2 ) p=0;
  9.         else p=1;
  10.  
  11.         return p;
  12.     }
  13.  
  14.     int main(){
  15.         int a, b, n=0, e=0, num[1000], exp[1000], i, j=0;
  16.  
  17.         printf(" \n Un numero menor o igual que 0 te sacara del programa \n ");
  18.         printf(" \n Introduce un numero para obtener sus factores primos: ");
  19.         scanf("%d",&a);
  20.  
  21.         if( a<=0 ) return 0;
  22.  
  23.         if( primo(a)==1 ) printf(" %d es primo y sus factores primos son %d y 1 \n ",a,a);
  24.         else{ // Si "a" NO es primo
  25.            for( b=2 ; b<=a ; b++ ){
  26.                e=0;
  27.               if ( primo(b)==1 && a%b==0 ){     // Si el "b" es primo y divisor de "a"
  28.                  num[n]=b;             // lo anota en el vector numerador
  29.                  while( a%b==0 ){ a=a/b; e++; } // Entonces comprueba cuantas veces es divisor de "a"
  30.                  exp[n]=e;                      // y lo anota en el vector exponente
  31.                  n++; i++;
  32.                  }
  33.               }
  34.            }
  35.  
  36.         i=n;
  37.         for( n=0 ; n<i ; n++ ) printf(" %d^%d",num[n],exp[n]);
  38.  
  39.         printf( " \n " );
  40.  
  41.         //system ("PAUSE");
  42.         return 0;
  43.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement