diff options
added sem 6 examples
4 files changed, 210 insertions, 0 deletions
| -rw-r--r-- | Sem. 6/README.md | 35 | ||||
| -rw-r--r-- | Sem. 6/Task_1(with functions).cpp | 26 | ||||
| -rw-r--r-- | Sem. 6/Task_1(without functions).cpp | 40 | ||||
| -rw-r--r-- | Sem. 6/Tasks_2,3,4,5,6,7,8,9,10.cpp | 109 |
diff --git a/Sem. 6/README.md b/Sem. 6/README.md new file mode 100644 index 0000000..0e79b21 --- /dev/null +++ b/Sem. 6/README.md @@ -0,0 +1,35 @@ +**Задача 1:** Въвежда се неотрицателно число n. Да се отпечатат всички двойки прости числа, които са във вида 6k-1 и 6k+1. + +**Задача 2:** Напишете функция, която приема неотрицателно число n и връща числото обърнато + +*Вход: 288, Изход: 822* + +**Задача 3:** Напишете функция, която приема неотрицателно число и връща дали числото е палиндром. + +**Задача 4:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е суфикс на n. + +*Вход: 288, 88, Изход: true* + +**Задача 5:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е префикс на n. + +*Вход: 288, 28, Изход: true* + +**Задача 6:** Напишете функция, която приема неотрицателни числа n и k и връща дали k се съдържа в n. + +*Вход: 2831, 83, Изход: true* + +**Задача 7:** Напишете функция, която приема неотрицателно число n и проверява дали има 4 последователни еднакви цифри. + +*Вход: 28777731, 83, Изход: true* + +**Задача 8:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са сортирани във възходящ ред. + +*Вход: 122239, Изход: true* + +**Задача 9:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са сортирани в низходящ ред. + +*Вход: 99943, Изход: true* + +**Задача 9:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са еднакви. + +*Вход: 111111, Изход: true*
\ No newline at end of file diff --git a/Sem. 6/Task_1(with functions).cpp b/Sem. 6/Task_1(with functions).cpp new file mode 100644 index 0000000..db68d0d --- /dev/null +++ b/Sem. 6/Task_1(with functions).cpp @@ -0,0 +1,26 @@ +#include <iostream> +using namespace std; + +bool isPrime(int number) +{ + double temp = sqrt(number); + for (int i = 2; i <= temp; i++) + { + if (number % i == 0) + return false; //Спира функцията и връща отговор - лъжа + } + return true; +} + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i <= n; i += 6) + { + if (isPrime(i - 1) && isPrime(i + 1)) + cout << i - 1 << " " << i + 1 << endl; + } + +}
\ No newline at end of file diff --git a/Sem. 6/Task_1(without functions).cpp b/Sem. 6/Task_1(without functions).cpp new file mode 100644 index 0000000..9e5bcdb --- /dev/null +++ b/Sem. 6/Task_1(without functions).cpp @@ -0,0 +1,40 @@ +#include <iostream> +using namespace std; + +int main() +{ + int n; + cin >> n; + + for (int i = 6; i <= n; i+=6) + { + int firstNumToCheck = i - 1, secondNumToCheck = i + 1; + + double temp = sqrt(firstNumToCheck); + bool isFirstNumPrime = true; + for (int j = 2; j <= temp; j++) + { + if (firstNumToCheck % j == 0) + { + isFirstNumPrime = false; + break; + } + } + + if (!isFirstNumPrime) + continue; + double temp2 = sqrt(secondNumToCheck); + bool isSecondNumPrime = true; + for (int j = 2; j <= temp2; j++) + { + if (secondNumToCheck % j == 0) + { + isSecondNumPrime = false; + break; + } + } + if (isSecondNumPrime) + cout << firstNumToCheck << " " << secondNumToCheck << endl; + } + +}
\ No newline at end of file diff --git a/Sem. 6/Tasks_2,3,4,5,6,7,8,9,10.cpp b/Sem. 6/Tasks_2,3,4,5,6,7,8,9,10.cpp new file mode 100644 index 0000000..20b6e45 --- /dev/null +++ b/Sem. 6/Tasks_2,3,4,5,6,7,8,9,10.cpp @@ -0,0 +1,109 @@ +#include <iostream> +using namespace std; + + +//Task 2 +unsigned int reverse(unsigned int number) +{ + int result = 0; + + while (number != 0) + { + int lastDigit = number % 10; + (result *= 10) += lastDigit; + number /= 10; + } + + return result; +} + +//Task 3 +bool isPalindrome(unsigned int n) +{ + return n == reverse(n); +} + +//Task 4 +bool isSuffix(unsigned int n, unsigned int k) +{ + if (n < k) + return false; + while (k != 0) + { + int lastDigitFromN = n % 10; + int lastDigitFromK = k % 10; + if (lastDigitFromN != lastDigitFromK) + return false; + n /= 10; + k /= 10; + } + return true; +} + +// Task 5 +bool isPrefix(unsigned int n, unsigned int k) +{ + return isSuffix(reverse(n), reverse(k)); +} + +// Task 6 +bool isInfix(unsigned int n, unsigned int k) +{ + if (k > n) + return false; + while (n >= k) + { + if (isSuffix(n, k)) + return true; + n /= 10; + } + return false; +} + +// Task 7 +bool hasConsecutiveFourDigits(unsigned int n) +{ + for (int i = 1111; i <= 9999; i+=1111) + { + if (isInfix(n, i)) + return true; + } + for (int i = 10000; i <= 90000; i += 10000) + { + if (isInfix(n, i)) + return true; + } + return false; +} + +// Task 8 +bool areDigitsSortedIncreasing(unsigned int n) +{ + while (n >= 10) + { + int lastDigit = n % 10; + int lastLastDigit = (n / 10) % 10; + + if (lastLastDigit > lastDigit) + return false; + n /= 10; // + } + return true; +} + +// Task 9 +bool areDigitsSortedDecreasing(unsigned int n) +{ + return areDigitsSortedIncreasing(reverse(n)); +} + +// Task 10 +bool areAllDigitsTheSame(unsigned int n) +{ + return areDigitsSortedIncreasing(n) && areDigitsSortedDecreasing(n); +} +int main() +{ + + cout << areAllDigitsTheSame(777); +}
\ No newline at end of file |
