diff --git a/BSP_1_C/bsp_1_c.cbp b/BSP_1_C/bsp_1_c.cbp
new file mode 100644
index 0000000..df39357
--- /dev/null
+++ b/BSP_1_C/bsp_1_c.cbp
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BSP_1_C/bsp_1_c.cpp b/BSP_1_C/bsp_1_c.cpp
new file mode 100644
index 0000000..befd932
--- /dev/null
+++ b/BSP_1_C/bsp_1_c.cpp
@@ -0,0 +1,48 @@
+#include "bsp_1_c.h"
+
+long long int fkt1(const long long int n)
+{
+ long long int sum1, sum2, sum3, sum;
+
+ sum1 = 0;
+ for (long long int k = 3; k<= n; k = k+3) // Summation der Vielfachen von 3, die kleinergleich n sind
+ {
+ sum1 = sum1 + k;
+ }
+
+ sum2 = 0;
+ for (long long int k = 5; k<= n; k = k+5) // Summation der Vielfachen von 5, die kleinergleich n sind
+ {
+ sum2 = sum2 + k;
+ }
+
+ sum3 = 0;
+ for (long long int k = 15; k<= n; k = k + 3*5) // Summation der Vielfachen von 15, die kleinergleich n sind
+ {
+ sum3 = sum3 + k;
+ }
+
+ // addieren die Vielfachen von 3 und 5, müssen die Vielfachen von 15 aber abziehen, da diese
+ // sowohl bei sum1 als auch sum2 mitgezählt wurden (doppelt gezählt)
+ sum = sum1 + sum2 - sum3;
+
+ return sum;
+}
+
+
+// berechnet die gesuchte Summe ausschließlich nach einer Formel / ohne loops
+long long int fkt2(const long long int n)
+{
+ // Berechnung via Formel
+ // schreibt Summe der durch 3 teilbaren Zahlen an, hebt 3 heraus und braucht dann nur mehr
+ // die Summe von 1 bis n/3 abgerundet zu addieren; hierfür verwende die Gauß´sche Summenformel
+ // und integer Division; analog für 5 und 15
+ long long int sum1, sum2, sum3, sum;
+ sum1 = 3*(n/3)*(n/3+1)/2;
+ sum2 = 5*(n/5)*(n/5+1)/2;
+ sum3 = 15*(n/15)*(n/15+1)/2;
+
+ sum = sum1 + sum2 - sum3;
+
+ return sum;
+}
diff --git a/BSP_1_C/bsp_1_c.h b/BSP_1_C/bsp_1_c.h
new file mode 100644
index 0000000..1fbe5a7
--- /dev/null
+++ b/BSP_1_C/bsp_1_c.h
@@ -0,0 +1,26 @@
+#ifndef BSP_1_C_H_INCLUDED
+#define BSP_1_C_H_INCLUDED
+
+//
+/** \brief Funktion zur Berechnung der Summe aller Vielfachen von 3 und 5, kleiner als n via for loops
+ *
+ * \param[in] n obere Schranke für die Zahlen, welche aufsummiert werden sollen
+ * \return Summe der Vielfachen (<=n) von 3 und 5
+ *
+ */
+long long int fkt1(const long long int n);
+
+
+//
+/** \brief berechnet die gesuchte Summe ausschließlich nach einer Formel / ohne loops. Berechnung via Formel;
+ // schreibt Summe der durch 3 teilbaren Zahlen an, hebt 3 heraus und braucht dann nur mehr
+ // die Summe von 1 bis n/3 abgerundet zu addieren; hierfür verwende die Gauß´sche Summenformel
+ // und integer Division; analog für 5 und 15
+ *
+ * \param[in] n obere Schranke für die Zahlen, welche aufsummiert werden sollen
+ * \return Summe der Vielfachen (<=n) von 3 und 5
+ *
+ */
+long long int fkt2(const long long int n);
+
+#endif // BSP_1_C_H_INCLUDED
diff --git a/BSP_1_C/main.cpp b/BSP_1_C/main.cpp
new file mode 100644
index 0000000..bea154f
--- /dev/null
+++ b/BSP_1_C/main.cpp
@@ -0,0 +1,53 @@
+#include "bsp_1_c.h"
+#include
+#include
+// BSP 1_C
+using namespace std;
+
+int main()
+{
+ long long int n1 = 15;
+ long long int n2 = 1001;
+ long long int n3 = 1432987;
+
+ cout << "n = " << n1 << endl;
+ cout << "Funktion 1 / loops" << endl;
+ cout << fkt1(n1) << endl;
+ cout << "Funktion 2 / Formel" << endl;
+ cout << fkt2(n1) << endl << endl;
+
+ cout << "n = " << n2 << endl;
+ cout << "Funktion 1 / loops" << endl;
+ cout << fkt1(n2) << endl;
+ cout << "Funktion 2 / Formel" << endl;
+ cout << fkt2(n2) << endl << endl;
+
+ cout << "n = " << n3 << endl;
+ cout << "Funktion 1 / loops" << endl;
+ cout << fkt1(n3) << endl;
+ cout << "Funktion 2 / Formel" << endl;
+ cout << fkt2(n3) << endl << endl;
+
+
+ // ad Zeitmessung beider Funktionen
+ auto time1start = std::chrono::system_clock::now();
+ for (int k = 1; k <= 10000; ++k)
+ {
+ fkt1(n3);
+ }
+ auto time1end = std::chrono::system_clock::now();
+ auto time1 = std::chrono::duration_cast(time1end - time1start);
+ cout << "benoetigte Zeit fuer Funktion 1 (10000 maliger Aufruf; n=1432987): " << time1.count() << "ms" << endl;
+
+ auto time2start = std::chrono::system_clock::now();
+ for (int k = 1; k <= 10000; ++k)
+ {
+ fkt2(n3);
+ }
+ auto time2end = std::chrono::system_clock::now();
+ auto time2 = std::chrono::duration_cast(time2end - time2start);
+ cout << "benoetigte Zeit fuer Funktion 2 (10000 maliger Aufruf; n=1432987): " << time2.count() << "ms" << endl;
+
+
+ return 0;
+}