Advertisement
GerexD

ism2--6,7

Sep 16th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. /**
  4. 6. Adjátok meg a primul alprogram teljes leírását, a következők szerint:
  5. - egyetlen paramétere az "a" természetes szám, a [2,10000] intervallumból
  6. - visszaadja az "a" szám legkisebb, 1-nél szigorúan nagyobb osztóját.
  7. b) Olvassunk be n darab természetes számot. Egy n természetes számot majdnem prímnek nevezünk, ha egyenlő két különböző prímszám szorzatával.
  8. Példa: a 14 majdnem prím, mert 14=2*7
  9. Írjatok programot, amely felhasználva a primul alprogramot, meghatározza és kiírja a képernyőre, egy-egy szóközzel elválasztva a számok közül a majdnem prím számokat!
  10. Pl: ha 6 szám van 100 14 21 8 77 35, akkor kiírja: 14 21 77 35
  11. */
  12. using namespace std;
  13. int primul(int a)
  14. {
  15. int leg=1;
  16. while(leg!=a)
  17. {
  18. leg++;
  19. if(a%leg==0) return leg;
  20. }
  21. }
  22. int prim(int n)
  23. {
  24. if(n<2) return 0;
  25. for(int i=2;i<=sqrt(n);i++)
  26. if(n%i==0) return 0;
  27. return 1;
  28. }
  29.  
  30. int main()
  31. {
  32. int a,n,c[1000];
  33. cout<<"A alpont"<<endl;
  34. cout<<"A ";cin>>a;
  35. cout<<primul(a)<<endl;
  36. cout<<"B alpont"<<endl;
  37. cout<<"N ";cin>>n;
  38. for(int i=1;i<=n;i++)
  39. cin>>c[i];
  40. for(int i=1;i<=n;i++)
  41. {
  42. if(prim(primul(c[i]))==1 && prim(c[i]/primul(c[i]))==1)
  43. cout<<c[i]<<" majdnem prim"<<endl;
  44. else cout<<c[i]<<" nem majdnem prim"<<endl;
  45. }
  46.  
  47. return 0;
  48. }
  49. ++++++++++++++++++++++++++++++++
  50. #include <iostream>
  51. #include <cmath>
  52. /**
  53. 7. a) Írd le az sdiv alprogram teljes definícióját, amely az y paraméterben megkap egy legfeljebb 6 számjegyű természetes számot, és visszatéríti
  54. az y összes osztójának összegét.
  55. b) Írj programot, amely a billentyűzetről beolvas egy n (n<10000) természetes számot, és a sdiv alprogram hivatkozásait használva ellenőrzi, hogy az n
  56. osztóinak összege prímszám-e. Ha igen, akkor a program kiírja a DA üzenetet, ellenkező esetben a NU üzenetet.
  57. Példa: ha n=206, akkor a kiírt üzenet: NU (1+2+103+206=312, és 312 nem prímszám).
  58. */
  59. using namespace std;
  60. int sdiv(int y)
  61. {
  62. int ossz=0;
  63. for(int i=1;i<=y;i++)
  64. if(y%i==0) ossz=ossz+i;
  65.  
  66. return ossz;
  67.  
  68. }
  69. int prim(int n)
  70. {
  71. if(n<2) return 0;
  72. for(int i=2;i<=sqrt(n);i++)
  73. if(n%i==0) return 0;
  74. return 1;
  75. }
  76.  
  77. int main()
  78. {
  79. int y,n;
  80. cout<<"A alpont"<<endl;
  81. cout<<"Y ";cin>>y;
  82. cout<<sdiv(y)<<endl;
  83. cout<<"B alpont"<<endl;
  84. cout<<"N ";cin>>n;
  85. if(prim(sdiv(n))==1) cout<<"DA";
  86. else cout<<"NU";
  87.  
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement