// 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