The problem with my code arises when I try putting in a value for quadmin and quadmax of around 60000. It starts saying all the results are negative numbers, though they can't be because of the numbers I'm using.
Code:
short a;
short bc;
short cc;
unsigned short iterations;
cout << " " << endl;
cout << " " << endl;
cout << "----------------------------------------------" << endl;
cout << " " << endl;
cout << " " << endl;
cout << "How many quadratics? (from n=min to n=max)" << endl;
cout << "min?" << endl;
cin >> quadmin;
cout << "max?" << endl;
cin >> quadmax;
cout << "How many iterations? (from 0 to 65,535)" << endl;
cin >> iterations;
cout << "a?" << endl;
cin >> a;
cout << "b c?" << endl;
cin >> bc;
cout << "c c?" << endl;
cin >> cc;
cout << " " << endl;
cout << " " << endl;
cout << "-----------------------------------------" << endl;
cout << " " << endl;
cout << " " << endl;
for(n = quadmin; n <= quadmax; n++)
{
//keeps track of how many primes result for this quadratic
int primes = 0;
//keeps track of the total iterations for this quadratic
int total = 0;
//START of test for increasing values of i
for(unsigned short i=0;i<iterations;i++)
{
short flag = 0;
__int64 num = ((a*i*i) + (((2*a*n)+bc)*i) + ((a*n*n)+(bc*n)+cc));
if(num>1)
{
if((num%2)==0) //checks against 2
{
flag = 1;
}
else
{
// checks odds from 3 up to sqrt(n)
for(long m = 3;m<=((long)(sqrt(num)));m+=2)
{
if((num%m)==0)
{
flag = 1;
break;
}
}
}
if(flag==0)
{
primes = primes + 1;
}
total++;
}
else
{
long double r = num;
cout << r << " was tossed out for being <= 1" << endl;
cout << " " << endl;
}
}
cout << a << "x^2 + " << ((2*a*n)+bc) << "x + " << ((a*n*n)+(bc*n)+cc) << endl;
cout << primes << " out of " << total << " were prime." << endl;
cout << " " << endl;
}
and here's the output (including the numbers I used)
Code:
--------------------------------------------
How many quadratics? (from n=min to n=max)
min?
60000
max?
70000
How many iterations? (from 0 to 65,535)
81
a?
1
b c?
-1
c c?
41
-----------------------------------------
-6.95027e+008 was tossed out for being <= 1
-6.94907e+008 was tossed out for being <= 1
-6.94787e+008 was tossed out for being <= 1
-6.94667e+008 was tossed out for being <= 1
-6.94547e+008 was tossed out for being <= 1
-6.94427e+008 was tossed out for being <= 1
-6.94307e+008 was tossed out for being <= 1
-6.94187e+008 was tossed out for being <= 1
-6.94067e+008 was tossed out for being <= 1
-6.93947e+008 was tossed out for being <= 1