I can throw you that up quick in enough, but only in C. But you someone should be able to translate it. What's the biggest possible number to be entered (eg. max value of x*y)?
Edit:
Here's your solution in C, maybe someone can take the concept and write it down in Python.
Edit:
Here's your solution in C, maybe someone can take the concept and write it down in Python.
Code:
//Include standard input-output.
#include <stdio.h>
//Function to check, whether the provided number is a prime, if it is, returns 0.
int start(int a)
{
int i;
for(i=2;i<(a/2)+1;i++)
{
if(a%i==0)
return 1;
}
return 0;
}
//My lovely main function.
int main()
{
//Lets the user know the program is online.
printf("Starting...\n");
//A variable to set the amout of primes to calculate.
//The program calculates l+1 first primes.
int l;
l=9999;
//Declaring my variables and an array large enough, to hold the primes.
int i,n,d,a,primes[l];
//The first prime is 2, ergo i=2 at kickoff.
i=2;
n=0;
//While the array is not filled with primes...
while(n<=l)
{
//Find primes. If i is a prime, stick it in the array.
if(start(i)==0)
{primes[n]=i;
n++;
i++;}
else
//If it isn't, keep searching.
{i++;}
}
//Notify of the results, how many primes were calculated, etc.
printf("Done calculating the first %d primes into an array.\n",(l+1));
printf("The last calulated prime is %d,\nso the entered number has to be smaller than the square of that.\n",primes[l]);
printf("Please enter your number: ");
//Read in the number the user is interested in.
scanf("%d",&d);
printf("Searching now...\n");
//Check if the provided number can be produced by multiplying numbers from the array, which holds the primes.
for(a=0;a<n;a++)
{
for(i=0;i<n;i++)
if(primes[a]*primes[i]==d)
{
//If yes, print out the numbers.
printf("Gotcha, your primes are %d and %d!",primes[a],primes[i]);
getchar();
getchar();
return 0;
}
}
//If not, be sad. =(
printf("No primes identified.");
getchar();
getchar();
return 0;
}
//Written by Etheryte, released to the free world.