Advertisement
Guest User

rukomet

a guest
Nov 24th, 2014
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define MAXN 151
  4. #define MAXS 1000001
  5.  
  6. int SZ[MAXS];
  7. int ND[MAXS];
  8.  
  9. int zbrojZnamenki( int n ){
  10.     int zbr = 0;
  11.     if(n<0){
  12.         n *= -1;
  13.     }
  14.  
  15.     while(n>0){
  16.         zbr += n%10;
  17.         n = n/10;
  18.     }
  19.     return zbr;
  20. }
  21.  
  22. int racunajSz( int a, int b ){
  23.     int i, sz = 0;
  24.     for(i=a; i<=b; i++){
  25.         SZ[i] = SZ[i] ? SZ[i] : zbrojZnamenki(i);
  26.         sz += SZ[i];
  27.     }
  28.     return sz;
  29. }
  30.  
  31. int brojDjelitelja( int n ){
  32.     int i, br = 0;
  33.     for( i=2; i*i<n; i++ ){
  34.         if(n%i==0) br+=2;
  35.     }
  36.     if(i*i==n) br++;
  37.     return br;
  38. }
  39.  
  40. int racunajNd( int a, int b ){
  41.     int i, nd = 0;
  42.     for(i=a; i<=b; i++){
  43.         ND[i] = ND[i] ? ND[i] : brojDjelitelja(i);
  44.         nd += ND[i];
  45.     }
  46.     return nd;
  47. }
  48.  
  49.  
  50. void zamjeni( int *niz, int i, int j ){
  51.     int tmp = niz[i];
  52.     niz[i] = niz[j];
  53.     niz[j] = tmp;
  54. }
  55.  
  56. void sortNiz( int *niz, int n ){
  57.     int i,j;
  58.     for(i=0;i<n;i++){
  59.         for(j=i+1;j<n;j++){
  60.             if(niz[i] < niz[j]){
  61.                 zamjeni(niz,i,j);
  62.             }
  63.         }
  64.     }
  65. }
  66.  
  67. void ispisiNiz(int *niz, int n){
  68.     int i;
  69.     for(i=0; i<n; i++){
  70.         if(i) printf(", ");
  71.         printf("%d",niz[i]);
  72.     }
  73. }
  74.  
  75. int main( void ){
  76.     int n, a, b;
  77.     int sz, nd, rez[MAXN];
  78.     int i, x, y;
  79.  
  80.     scanf("%d", &n);
  81.     for(i=0; i<n; i++){
  82.         scanf("%d%d", &x, &y);
  83.         if(x<y){
  84.             a = x; b = y;
  85.         } else{
  86.             a = y; b = x;
  87.         }
  88.  
  89.         sz = racunajSz(a,b);
  90.         nd = racunajNd(a,b);
  91.         rez[i] = (nd==0 ? 0 : sz%nd);
  92.     }
  93.     sortNiz(rez, n);
  94.     ispisiNiz(rez, n);
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement