Advertisement
Kyrexar

Factores (base)

Apr 23rd, 2012
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 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;
  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[i]=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[i]=e;                      // y lo anota en el vector exponente
  31.              i++;
  32.              }
  33.           }
  34.        }
  35.  
  36.     for( n=0 ; n<i ; n++ )
  37.        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