fork download
  1. #include <stdio.h>
  2.  
  3. int R(int x, int y) {
  4. return x * x <= y;
  5. }
  6.  
  7. int main() {
  8. int N = 50; // перевіряємо натуральні числа 1..50
  9.  
  10. int reflexive = 1;
  11. int symmetric = 1;
  12. int transitive = 1;
  13.  
  14. // Перевірка рефлексивності
  15. for (int x = 1; x <= N; x++) {
  16. if (!R(x, x)) {
  17. reflexive = 0;
  18. break;
  19. }
  20. }
  21.  
  22. // Перевірка симетричності
  23. for (int x = 1; x <= N; x++) {
  24. for (int y = 1; y <= N; y++) {
  25. if (R(x, y) && !R(y, x)) {
  26. symmetric = 0;
  27. goto sym_done;
  28. }
  29. }
  30. }
  31. sym_done:
  32.  
  33. // Перевірка транзитивності
  34. for (int x = 1; x <= N; x++) {
  35. for (int y = 1; y <= N; y++) {
  36. for (int z = 1; z <= N; z++) {
  37. if (R(x, y) && R(y, z) && !R(x, z)) {
  38. transitive = 0;
  39. goto trans_done;
  40. }
  41. }
  42. }
  43. }
  44. trans_done:
  45.  
  46. printf("Рефлексивність: %s\n", reflexive ? "так" : "ні");
  47. printf("Симетричність: %s\n", symmetric ? "так" : "ні");
  48. printf("Транзитивність: %s\n", transitive ? "так" : "ні");
  49.  
  50. if (reflexive && symmetric && transitive)
  51. printf("\nВідношення є еквівалентністю.\n");
  52. else
  53. printf("\nВідношення НЕ є еквівалентністю.\n");
  54.  
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Рефлексивність:   ні
Симетричність:    ні
Транзитивність:   так

Відношення НЕ є еквівалентністю.