Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 6
diff options
context:
space:
mode:
Commit1697dfff314ccbbe1457e95ed736aaa296bfddcc (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-17 19:24:32 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-17 19:24:32 +0200
Filesa6b75276e39a08dc7a4fb7f1544ed1b353af6226 /Sem. 6
Introduction_to_programming_FMI-1697dfff314ccbbe1457e95ed736aaa296bfddcc.tar
Introduction_to_programming_FMI-1697dfff314ccbbe1457e95ed736aaa296bfddcc.tar.gz
Introduction_to_programming_FMI-1697dfff314ccbbe1457e95ed736aaa296bfddcc.zip
Parentcd8af20ed63c37387a13e7016ee51a0058416ad6 (diff)
added sem 6 examples
4 files changed, 210 insertions, 0 deletions
-rw-r--r--Sem. 6/README.md35
-rw-r--r--Sem. 6/Task_1(with functions).cpp26
-rw-r--r--Sem. 6/Task_1(without functions).cpp40
-rw-r--r--Sem. 6/Tasks_2,3,4,5,6,7,8,9,10.cpp109
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