该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
int getNumber(void);
int testNumber(int);
void resultTestNumber(int, int);
int testPrime(int);
//int testN(float);
void MersennePrime(int);
void ThabitPrime(int);
void CarolPrime(int);
int main()
{
int number;
int prime;
number = getNumber();
prime = testNumber(number);
resultTestNumber(prime, number);
if (prime == 1)
{
MersennePrime(prime);
ThabitPrime(prime);
CarolPrime(prime);
}
else
{
}
return(0);
}
int getNumber()
{
int number;
printf("Enter number to test for prime: ");
scanf("%d",&number);
return(number);
}
int testNumber(int number)
{
int initial = 3;
int prime = 1;
if(number == 1)
{
prime = 0;
}
else
{
while(initial < sqrt(number))
{
if(number % initial == 0)
{
prime = 0;
}
else if(number == 1)
{
prime = 0;
}
initial = initial + 2;
}
}
return(prime);
}
void resultTestNumber(int prime, int number)
{
if(prime == 0)
{
printf("The number entered %d is not prime!\n", number);
}
else
{
printf("The number entered %d is prime!\n", number);
}
return;
}
int testN(float n)
{
int Nresult;
float difference;
difference = (float)n - (int)n;
if (difference == 0)
{
Nresult = 1;
}
else
{
Nresult = 0;
}
return(Nresult);
}
void MersennePrime(int prime)
{
float n;
int Nresult;
n = (log(prime + 1) / log(2));
Nresult = testN(n);
if (Nresult == 1)
{
printf("\n -- Is a Mersenne prime!");
}
else
{
}
return;
}
void ThabitPrime(int prime)
{
float n;
int Nresult;
n = (log(prime + 1) + log(3)) / log(2);
Nresult = testN(n);
if (Nresult == 1)
{
printf("\n -- Is a Thabit prime!");
}
else
{
}
return;
}
void CarolPrime(int prime)
{
float n;
int Nresult;
n = (log(sqrt(prime + 2) + 1)) / log(2);
Nresult = testN(n);
if (Nresult == 1)
{
printf("\n -- Is a Carol prime!");
}
else
{
}
return;
}
现在的output有点问题= =