From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp (limited to 'Bachelor/Prog1/Prakt2/prg1p2_5/prg1p2_5.cpp') 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 +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 -- cgit v1.2.3