Euler`s function


/ Published in: C
Save to your folder(s)



Copy this code and paste it in your HTML
  1. /*
  2. Indicativul lui Euler!
  3. */
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7.  
  8. // Functia CMMDC
  9. int cmmdc(int n,int m){
  10. int r;
  11. r=n%m;
  12. while(r!=0){
  13. n=m;
  14. m=r;
  15. r=n%m;
  16. }
  17. return m;
  18. }
  19.  
  20. //Program principal
  21. int main()
  22.  
  23. {
  24. int n,i,contor=0,v[100],j=1,v1[10000],k,l=0,raspuns=0;
  25. printf(">Cate numere introduceti? n=");
  26. scanf("%d",&n);
  27.  
  28. printf(">Introduceti numerele: \n");
  29. for(i=0;i<n;i++){
  30. printf(">%d numar:",i+1);
  31. scanf("%d",&v[i]);
  32. j=1;
  33. contor=0;
  34. l=0;
  35. raspuns=0;
  36.  
  37. //retin valorile mai mici ca V[i] intrun vector V1
  38. while(j<v[i]){
  39. //printf("%d,",j);
  40. v1[contor]=j;
  41. contor+=1;
  42. j++;
  43. }
  44.  
  45. //parcurg elementele vectorului V1
  46. for(k=0;k<contor;k++){
  47. //printf(">v1[%d]=%d \n",k,v1[k]);
  48. if(cmmdc(v[i],v1[k])==1){ //<---- testez daca V1 au cmmdc=1 adik dak sunt prime intre ele
  49. l+=1; //<---- incrementez daca am gasit un numar care cu V[i] are cmmdc=1
  50. //printf("%d,",v1[k]);
  51. }
  52. }
  53.  
  54.  
  55. printf(">F(%d)=%d,",v[i],l);
  56. while(l%2==0){
  57. l/=2;//-->impartiri consecutive la 2
  58. }
  59. if(l==1){//-->daca catul este 1 inseamna ca este o putere a lui 2
  60. printf("este o putere a lui 2\n");
  61. }
  62. else{
  63. printf("nu este o putere a lui 2\n");
  64. }
  65. }
  66.  
  67. system("pause");
  68. return 0;
  69. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.