Patey

Untitled

May 6th, 2021
432
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<math.h>
  4.  
  5. int palindrom_zecimal(long int x)
  6. {
  7.     long int inv = 0, aux = x;
  8.     while (aux > 0)
  9.     {
  10.         inv = inv * 10 + aux % 10;
  11.         aux = aux / 10;
  12.     }
  13.     if (inv == x)
  14.         return 1;
  15.     else
  16.         return 0;
  17. }
  18.  
  19. int palindrom_binar(long int x)
  20. {
  21.     long long int bit1 = 0, bit2 = 0, j, poz = 1;
  22.  
  23.     for (j = 0; j <= 31; j++)
  24.     {
  25.         if ((x >> j) & 1)
  26.         {
  27.             bit1 = bit1 * pow(10, poz) + 1;
  28.             poz = 1;
  29.         }
  30.         else
  31.             poz++;
  32.     }
  33.  
  34.     poz = 1;
  35.     for (j = 31; j >= 0; j--)
  36.     {
  37.         if ((x >> j) & 1)
  38.         {
  39.             bit2 = bit2 * pow(10, poz) + 1;
  40.             poz = 1;
  41.         }
  42.         else
  43.             poz++;
  44.     }
  45.     if (bit1 == bit2)
  46.         return 1;
  47.     else
  48.         return 0;
  49. }
  50.  
  51. int palindrom_octal(long int x)
  52. {
  53.     long int a[100], k = 1, aux, poz = -1, i;
  54.  
  55.     while (x > 0)
  56.     {
  57.         poz++;
  58.         a[poz] = x % 8;
  59.         x = x / 8;
  60.     }
  61.  
  62.     for (i = 0; i <= poz / 2; i++)
  63.     {
  64.         if (a[i] != a[poz - i])
  65.             k = 0;
  66.     }
  67.  
  68.     return k;
  69.  
  70. }
  71.  
  72. int palindrom_hexa(long int x)
  73. {
  74.     int i = 0, poz = -1, k = 1;
  75.     char a[100];
  76.     while (x != 0)
  77.     {
  78.         int temp = 0;
  79.         temp = x % 16;
  80.         if (temp < 10) {
  81.             poz++;
  82.             a[poz] = temp + 48;
  83.         }
  84.         else {
  85.             poz++;
  86.             a[poz] = temp + 55;
  87.         }
  88.         x = x / 16;
  89.     }
  90.  
  91.     for (i = 0; i <= poz / 2; i++)
  92.     {
  93.         if (a[i] != a[poz - i])
  94.             k = 0;
  95.     }
  96.  
  97.     return k;
  98. }
  99.  
  100. int main()
  101. {
  102.     long int n, i, nr, val;
  103.     FILE *fis_in, *fis_out;
  104.     fis_in = fopen("in.txt", "rt");
  105.     fis_out = fopen("out.txt", "wt");
  106.     fscanf(fis_in,"%ld", &n);
  107.     for (i = 10; i <= n; i++)
  108.     {
  109.         nr = 0;
  110.         val = palindrom_zecimal(i);
  111.         nr += val;
  112.         val = palindrom_binar(i);
  113.         nr += val;
  114.         val = palindrom_octal(i);
  115.         nr += val;
  116.         val = palindrom_hexa(i);
  117.         nr += val;
  118.         if (nr >= 2)
  119.             fprintf(fis_out,"%ld\n", i);
  120.     }
  121. }
RAW Paste Data