Advertisement
lama2123

Untitled

Nov 24th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. 1. Dane s¹ dwie tablice t1[N] i t2[N] zawieraj¹ce liczby naturalne. Z wartoœci w obu tablicach
  5. mo¿emy tworzyæ sumy. „Poprawna” suma to taka, która zawiera co najmniej jeden element
  6. (z tablicy t1 lub t2) o ka¿dym indeksie. Na przyk³ad dla tablic: t1 = [1,3,2,4] i t2 = [9,7,4,8]
  7. poprawnymi sumami s¹ na przyk³ad 1+3+2+4, 9+7+4+8, 1+7+3+8, 1+9+7+2+4+8.
  8. Proszê napisaæ funkcjê generuj¹c¹ i wypisuj¹c¹ wszystkie poprawne sumy, które s¹ liczbami
  9. pierwszymi. Do funkcji nale¿y przekazaæ dwie tablice, funkcja powinna zwróciæ liczbê
  10. znalezionych i wypisanych sum.
  11. Uwagi:
  12. - warunek pierwszoœci mo¿na pomin¹æ kosztem 1 pkt
  13. - do funkcji mo¿na przekazaæ dodatkowe parametry
  14. - czas na rozwi¹zanie obu zadañ wynosi 45 minut
  15. - za ka¿de zadanie mo¿na otrzymaæ maksymalnie 5 pkt
  16. - oceniane bêd¹: czytelnoœæ, poprawnoœæ i efektywnoœæ rozwi¹zañ
  17. */
  18. const int N = 4;
  19. void valid_sum(int tab1[],int tab2[],int sum,int i,int ilosc);
  20. bool isPrime(int n);
  21.  
  22. int main()
  23. {
  24. int tab1[N] = {1,2,3,4};
  25. int tab2[N] = {9,7,4,8};
  26. valid_sum(tab1,tab2,0,0,0);
  27. return 0;
  28. }
  29.  
  30. // tab1, tab2 - tablice
  31. // sum - generowana suma
  32. // i - indeks
  33. // ilosc - ilosc wygenerowanych poprawnych sum
  34. void valid_sum(int tab1[],int tab2[],int sum,int i,int ilosc)
  35. {
  36. if(i == N)
  37. {
  38. if(isPrime(sum))
  39. {
  40. cout << sum << endl;
  41. cout << "Ilosc: " << ilosc << endl;
  42. }
  43. }
  44. else
  45. {
  46. valid_sum(tab1,tab2,sum+tab1[i],i+1,ilosc++);
  47. valid_sum(tab1,tab2,sum+tab2[i],i+1,ilosc++);
  48. }
  49. }
  50.  
  51. bool isPrime(int n)
  52. {
  53. if(n < 2)
  54. return false;
  55. for(int i=2; i*i <= n; i++)
  56. {
  57. if(n%i == 0)
  58. return false;
  59. }
  60. return true;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement