Advertisement
madalinaradu

FAI pb 6 Zn invers, nilp div 0

Nov 25th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. //tabla de adunare si inmultire in Zn, lemente inversabile, nilpotente si divisori ai lui zero
  4. int main()
  5. {
  6.     int n,i,j,k,elementInv[30],nInv,nilpotent,ik;//ik retine i la puterea k modulo n
  7.     int s[30][30],p[30][30];
  8.  
  9.     printf("n=");
  10.     scanf("%d",&n);
  11.     printf("elementele lui Zn sunt:\n");
  12.     for (i=0; i<n; i++)
  13.     {
  14.         printf("%3d",i);
  15.     }
  16.     printf("\n");
  17.  
  18.     for (i=0; i<n; i++)
  19.     {
  20.         for (j=0; j<n; j++)
  21.         {
  22.  
  23.             s[i][j]=(i+j)%n;
  24.             p[i][j]=(i*j)%n;
  25.  
  26.         }
  27.     }
  28.     printf("Tabela adunarii\n");
  29.     printf("%3c|",'+');//afisam capul de tabel
  30.     for(i=0; i<n; i++)
  31.     {
  32.         printf("%3d",i);
  33.  
  34.     }
  35.     printf("\n");
  36.     for(i=0; i<=n; i++)
  37.     {
  38.         printf("___");
  39.  
  40.     }
  41.     printf("\n");
  42.     for (i=0; i<n; i++)
  43.     {
  44.         printf("%3d|",i);
  45.         for (j=0; j<n; j++)
  46.         {
  47.             printf("%3d",s[i][j]);
  48.  
  49.         }
  50.         printf("\n");
  51.     }
  52.  
  53.     printf("\n");
  54.     printf("Tabela imnultirii\n");
  55.     printf("%3c|",'*');//afisam capul de tabel
  56.     for(i=0; i<n; i++)
  57.     {
  58.         printf("%3d",i);
  59.  
  60.     }
  61.     printf("\n");
  62.     for(i=0; i<=n; i++)
  63.     {
  64.         printf("___");
  65.  
  66.     }
  67.     printf("\n");
  68.     for (i=0; i<n; i++)
  69.     {
  70.         printf("%3d|",i);
  71.         for (j=0; j<n; j++)
  72.         {
  73.             printf("%3d",p[i][j]);
  74.  
  75.         }
  76.         printf("\n");
  77.     }
  78.  
  79.     printf("\n");
  80.     printf("Elementele inversabile sunt:");
  81.     nInv=0;
  82.     for (i=0; i<n; i++)
  83.     {
  84.         for (j=0; j<n; j++)
  85.         {
  86.             if(p[i][j]==1)
  87.             {
  88.                 elementInv[nInv]=i;
  89.                 nInv++;
  90.                 printf("%3d",i);
  91.             }
  92.         }
  93.     }
  94.     printf("\n");
  95.     //nilpotenta
  96.     nilpotent=1;
  97.  
  98.     for(i=0; i<n; i++)
  99.     {
  100.         ik=1;
  101.         for(k=1; k<=n+1; k++)
  102.         {
  103.             ik=(ik*i)%n;
  104.             if(ik==0)
  105.             {
  106.                 printf("Elementul %d este nilpotent deoarece %d^%d este egal cu 0\n",i,i,k);
  107.                 break;
  108.             }
  109.  
  110.         }
  111.  
  112.     }
  113.     printf("\n");
  114.     printf("Divizorii lui zero sunt:");
  115.     for (i=1; i<n; i++)
  116.     {
  117.         for (j=1; j<n; j++)
  118.         {
  119.             if(p[i][j]==0)
  120.             {
  121.                 printf("%3d",i);
  122.                 break;
  123.             }
  124.         }
  125.     }
  126.  
  127. return 0;
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement