//To be compiled on gcc //#include #include double f,m,n,p,t,previous,trial; int twinprimes() { trial = p; //check for prime while(trial != 0) { f=0; t=3; while( t*t <= trial) { //cout << "debug " << t*t << " " << trial << endl; if(fmod(trial,2) == 0) // if trial is even { f = 2; p -= 1; // make p odd } if (fmod(trial,t) == 0) { f=t; t=trial; } else t=t+2; } if (f == 0) { printf ("%d is a prime number.\n",trial); trial = 0; //is previous 1? if(previous == 1) { //cout << p-2 << ", " << p << " are twin primes!" << endl; printf("%d, %d are twin primes!\n", p-2, p); } else { previous = 1; } } else { //cout << trial << " has a factor of " << f << "." << endl; printf("%d has a factor of %d.\n", trial, f); trial = 0; previous = 0; } } p += 2; if(p <= m) { return 1; //repeat } else { return 2; //complete } } int main() { int q; //input //cout << "Enter the lower limit for a ranged twin prime # check..." << endl; printf("Enter the lower limit for a ranged twin prime # check...\n"); scanf("%d", &n); //cin >> n; if(n < 7) { printf("The lower limit must be greater than or equal to 7\n"); return 0; } printf("Enter the upper limit for a ranged twin prime # check...\n"); //cin >> m; scanf("%d", &m); if(m < n + 2) { printf("The upper limit must be greater than or equal to %d\n", n + 2); return 0; } p = n; previous = 0; f = 0; while(q != 2) { q = twinprimes(); } return 0; }