Advertisement
Dragonkoko

PFactors

Mar 9th, 2014
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.08 KB | None | 0 0
  1. #include<stdio.h>
  2. int primes[10000000];
  3. int pf[10000000];
  4. void calcPrimes(int n){
  5.     int index=0;
  6.     primes[1]=1;
  7.     primes[0]=1;
  8.     int i=2,j=0,lastind=0;
  9.     for(i=2;i*i<=n;i++){
  10.         if(primes[i]==0){
  11.             for(j=i*i;j<n;j+=i){
  12.                 primes[j]=i;
  13.             }
  14.             primes[i]=i;
  15.             lastind=i;
  16.         }
  17.     }
  18.     for(i=lastind+1;i<=n;i++)
  19.         if(primes[i]==0)
  20.             primes[i]=i;
  21. }
  22. void printfactors(int n){
  23.     int temp[n];
  24.     int index=0;
  25.     while(n>1){
  26.         temp[index++]=primes[n];
  27.         n/=primes[n];
  28.     }
  29.     int i;
  30.     for(i=index-1;i>0;i--){
  31.         printf("%d x ",temp[i]);
  32.     }
  33.     printf("%d\n",temp[0]);
  34. }
  35. main(){
  36.     int number;
  37.     calcPrimes(10000000);
  38.     while(1){
  39.         scanf("%d",&number);
  40.         if(number==0) return 0;
  41.         else if(number > 0) {
  42.             printf("%d = ",number);
  43.             printfactors(number);
  44.         }else {
  45.             printf("%d = -1 x ",number);
  46.             number *=-1;
  47.             printfactors(number);
  48.         }
  49.     }
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement