summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp')
-rw-r--r--Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp b/Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp
new file mode 100644
index 0000000..0691d20
--- /dev/null
+++ b/Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp
@@ -0,0 +1,73 @@
+// Programmieren 1, Praktikum 2, Aufgabe 5
+// Sven Eisenhauer
+// 06.11.2004
+//
+// file: prg1p2_5.cpp
+//
+// purpose: program to reads 2 integers from keyboard and finds all prime number twins
+// between them, like 3 and 5 or 17 and 19
+//
+
+#include <iostream>
+using std::cin;
+using std::cout;
+using std::endl;
+
+int main()
+{
+ int iNumberA, iNumberB;
+ int iMin, iMax;
+ int iIsPrime1=0;
+ int iIsPrime2=0;
+ int iPrime1=0;
+ int iPrime2=0;
+ int iToTest=0;
+
+ cout << "Please enter 1st number: ";
+ cin >> iNumberA;
+ cout << "Please enter 2nd number: ";
+ cin >> iNumberB;
+ cout << endl;
+
+ // first find out, which is the bigger value.
+ iMax=iNumberA;
+ iMin=iNumberB;
+
+ if (iNumberB > iNumberA)
+ {
+ iMax=iNumberB;
+ iMin=iNumberA;
+ }
+ // First loop: Get all numbers between the 2 entered
+ for (int iOuterCounter=iMax-1;iOuterCounter>iMin;iOuterCounter--)
+ {
+ iIsPrime1=0;
+ for (int iInnerCounter=iOuterCounter-1;iInnerCounter>1;iInnerCounter--)
+ {
+ if ( 0 == iOuterCounter%iInnerCounter)
+ iIsPrime1=1; // actual number is NOT a prime
+ }// end inner for routine
+ if (0 == iIsPrime1)
+ {
+ iPrime1=iOuterCounter;
+ // now test, if iPrime1 - 2 is a prime
+ iIsPrime2 = 0;
+ iToTest = iOuterCounter - 2;
+ for (int iInnerCounter2=iToTest-1;iInnerCounter2>1;iInnerCounter2--)
+ {
+ if (0 == iToTest%iInnerCounter2)
+ iIsPrime2=1;
+ }
+ if (0 == iIsPrime2)
+ iPrime2=iToTest;
+
+ if ((0 == iIsPrime1) && (0 == iIsPrime2) && (iPrime2 > iMin))
+ cout << iPrime1 << "\t" << iPrime2 << endl;
+ }
+ // if (iIsPrime1 && iIsPrime2)
+ // cout << iPrime1 << "\t" << iPrime2 << endl;
+ }
+// system ("pause");
+
+ return 0;
+}// end main