All pastes #231321 Raw Edit

Miscellany

public text v1 · immutable
#231321 ·published 2006-10-31 19:29 UTC
rendered paste body
// Dzielni Baloniarze, zad018

#include <iostream>

#define TEST

#define MaxN  10000
#define MaxLP 1300



using namespace std;

int LP[MaxLP];	//tablica z liczbami pierwszymi
int DZ[MaxLP+1];  //tablica z dzielnikami

int FindLP(int *Tab, int r);
void GetDZ(int *Tab, int l);

int main()
{
  int a; //rozpartywana liczba
  int k = FindLP(LP,MaxN);
  
  for(int i=0; i<=MaxLP; i++) DZ[i]=0;
  for(int i=1; i<=10; i++)
  {
    scanf("%d",&a);
    GetDZ(DZ,a);
  }
  
  int res = 1;
  for(int i=0; i<k; i++)
   res = (res*(DZ[i]+1))%10; 
  printf("%d",res);
  /*for(int i=0; i<k; i++)
    printf("%d ",LP[i]);
  printf("\nK=%d\n",k);*/
  
  
  /*for(int i=0; i<k; i++)
    printf("%d ",DZ[i]);
  printf("\n");*/
  

  return 0;
}

/*
 Znajduje liczby pierwsze od 1 do r, zapisuje do Tab,
 zwraca ich ilosc
*/
int FindLP(int *Tab,int r) 
{
  int i,j,k;
  bool koniec=false;
  Tab[0]=2; Tab[1]=3; k=1;

  for(j=5; Tab[k]<=r; j+=2)
  {
    koniec=false;i=0;
    while((Tab[i]*Tab[i]<=j)&&(koniec==false))
    {
      if((j%Tab[i])==0) koniec=true;
      i++;
    }
    if(koniec==false){
      k++; Tab[k]=j;
    }
  }
  return k;
}

/*
  Rozklada liczbe 'l' na czynniki pierwsze,
  i dodaje je do tablicy Tab,
  indexy w LP odpowiadaja indeksom w Tab
*/
void GetDZ(int *Tab, int l)
{
  int i=0;
  while(l>1)
  {
    while(l % LP[i] == 0) { l=l/LP[i]; Tab[i]++;}
    i++;
  }
}