#include <stdio.h>
int R(int x, int y) {
return x * x <= y;
}
int main() {
int N = 50; // перевіряємо натуральні числа 1..50
int reflexive = 1;
int symmetric = 1;
int transitive = 1;
// Перевірка рефлексивності
for (int x = 1; x <= N; x++) {
if (!R(x, x)) {
reflexive = 0;
break;
}
}
// Перевірка симетричності
for (int x = 1; x <= N; x++) {
for (int y = 1; y <= N; y++) {
if (R(x, y) && !R(y, x)) {
symmetric = 0;
goto sym_done;
}
}
}
sym_done:
// Перевірка транзитивності
for (int x = 1; x <= N; x++) {
for (int y = 1; y <= N; y++) {
for (int z = 1; z <= N; z++) {
if (R(x, y) && R(y, z) && !R(x, z)) {
transitive = 0;
goto trans_done;
}
}
}
}
trans_done:
printf("Рефлексивність: %s\n", reflexive
? "так" : "ні"); printf("Симетричність: %s\n", symmetric
? "так" : "ні"); printf("Транзитивність: %s\n", transitive
? "так" : "ні");
if (reflexive && symmetric && transitive)
printf("\nВідношення є еквівалентністю.\n"); else
printf("\nВідношення НЕ є еквівалентністю.\n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgUihpbnQgeCwgaW50IHkpIHsKICAgIHJldHVybiB4ICogeCA8PSB5Owp9CgppbnQgbWFpbigpIHsKICAgIGludCBOID0gNTA7ICAvLyDQv9C10YDQtdCy0ZbRgNGP0ZTQvNC+INC90LDRgtGD0YDQsNC70YzQvdGWINGH0LjRgdC70LAgMS4uNTAKCiAgICBpbnQgcmVmbGV4aXZlID0gMTsKICAgIGludCBzeW1tZXRyaWMgPSAxOwogICAgaW50IHRyYW5zaXRpdmUgPSAxOwoKICAgIC8vINCf0LXRgNC10LLRltGA0LrQsCDRgNC10YTQu9C10LrRgdC40LLQvdC+0YHRgtGWCiAgICBmb3IgKGludCB4ID0gMTsgeCA8PSBOOyB4KyspIHsKICAgICAgICBpZiAoIVIoeCwgeCkpIHsKICAgICAgICAgICAgcmVmbGV4aXZlID0gMDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8vINCf0LXRgNC10LLRltGA0LrQsCDRgdC40LzQtdGC0YDQuNGH0L3QvtGB0YLRlgogICAgZm9yIChpbnQgeCA9IDE7IHggPD0gTjsgeCsrKSB7CiAgICAgICAgZm9yIChpbnQgeSA9IDE7IHkgPD0gTjsgeSsrKSB7CiAgICAgICAgICAgIGlmIChSKHgsIHkpICYmICFSKHksIHgpKSB7CiAgICAgICAgICAgICAgICBzeW1tZXRyaWMgPSAwOwogICAgICAgICAgICAgICAgZ290byBzeW1fZG9uZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0Kc3ltX2RvbmU6CgogICAgLy8g0J/QtdGA0LXQstGW0YDQutCwINGC0YDQsNC90LfQuNGC0LjQstC90L7RgdGC0ZYKICAgIGZvciAoaW50IHggPSAxOyB4IDw9IE47IHgrKykgewogICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDw9IE47IHkrKykgewogICAgICAgICAgICBmb3IgKGludCB6ID0gMTsgeiA8PSBOOyB6KyspIHsKICAgICAgICAgICAgICAgIGlmIChSKHgsIHkpICYmIFIoeSwgeikgJiYgIVIoeCwgeikpIHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aXZlID0gMDsKICAgICAgICAgICAgICAgICAgICBnb3RvIHRyYW5zX2RvbmU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CnRyYW5zX2RvbmU6CgogICAgcHJpbnRmKCLQoNC10YTQu9C10LrRgdC40LLQvdGW0YHRgtGMOiAgICVzXG4iLCByZWZsZXhpdmUgPyAi0YLQsNC6IiA6ICLQvdGWIik7CiAgICBwcmludGYoItCh0LjQvNC10YLRgNC40YfQvdGW0YHRgtGMOiAgICAlc1xuIiwgc3ltbWV0cmljID8gItGC0LDQuiIgOiAi0L3RliIpOwogICAgcHJpbnRmKCLQotGA0LDQvdC30LjRgtC40LLQvdGW0YHRgtGMOiAgICVzXG4iLCB0cmFuc2l0aXZlID8gItGC0LDQuiIgOiAi0L3RliIpOwoKICAgIGlmIChyZWZsZXhpdmUgJiYgc3ltbWV0cmljICYmIHRyYW5zaXRpdmUpCiAgICAgICAgcHJpbnRmKCJcbtCS0ZbQtNC90L7RiNC10L3QvdGPINGUINC10LrQstGW0LLQsNC70LXQvdGC0L3RltGB0YLRji5cbiIpOwogICAgZWxzZQogICAgICAgIHByaW50ZigiXG7QktGW0LTQvdC+0YjQtdC90L3RjyDQndCVINGUINC10LrQstGW0LLQsNC70LXQvdGC0L3RltGB0YLRji5cbiIpOwoKICAgIHJldHVybiAwOwp9Cg==