Also, sorry for spamming your Python thread with C.
Final code:
Download in exe form.
Final code:
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");
//Declare variables
int l,i,n,d,a;
//Ask for a number.
printf("Please enter your number: ");
scanf("%d",&d);
//Negativity check.
if(d<0)
{
printf("The number you provided is negative and can't be achieved via multiplus of two positive numbers.\n");
getchar();
getchar();
return 0;
}
//Check, if the provided number is a prime on itself, if it's not achievable by multiplying other primes.
if(start(d)==0)
{
printf("Provided number is a prime on itself and is not achiavable via multiplus of other primes.\n");
getchar();
getchar();
return 0;
}
//Check, if the provided number can be divided by 10.
if(d%10==0&&d!=10)
{
printf("No primes identified. (Number divides by 10.)");
getchar();
getchar();
return 0;
}
i=2;
n=0;
//Find out how many primes there are from 0 to the number provided
while(i<d/2)
{
if(start(i)==0)
{
n++;
i++;
} else {
i++;
}
}
//How many primes you need to find the number provided.
l=n;
//An array large enough, to hold the primes.
int 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.\n",primes[l]);
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. (Via calculations.)");
getchar();
getchar();
return 0;
}
//Written by Etheryte, released to the free world.