C语言判断Mersenne素数

来源:百度知道 编辑:UC知道 时间:2024/05/27 07:12:49
这是我的程序:

#include <stdio.h>

void PrintWelcomeInfo();
void IsMersenne();
int main()
{
int a;
clrscr();
PrintWelcomeInfo();
scanf("%d",&a);
IsMersenne(a);
return 0;
}

void PrintWelcomeInfo()
{
printf("The program gets an integer and decides if it is a Mersenne prime.\n");
printf("Please input an integer:");
}

void IsMersenne(int x)
{
int i,j;
for(i=2;i<=x;i++)
if(i%x)
if(i==x)
{
for(j=1;j<x;j*=2)
if(x==j-1) printf("This is a Mersenne prime.\n");
}
else printf("This is not a Mersenne prime.\n");
}

请各位指教~

你以后写程序的时候,最好注意编程风格,不然,自己都难读懂。我想要实现你的功能,可以这样:
#include <stdio.h>
void PrintWelcomeInfo();
bool IsMersenne(int x);
int main()
{
int a;
PrintWelcomeInfo();
scanf("%d",&a);
if(IsMersenne(a))
printf("This is a Mersenne prime.\n");
else
printf("This is not a Mersenne prime.\n");
return 0;
}

void PrintWelcomeInfo()
{
printf("The program gets an integer and decides if it is a Mersenne prime.\n");
printf("Please input an integer:");
}

bool IsMersenne(int x)
{
for(int i=2;i<x;i++)
{
if(0==x%i)
//只要从2到x(不包括x)中有一个数能被x整除,就不是素数
return false;
}
return true;
}

那个clrscr();是不是想清屏啊?如果是的话可以用system("cls");不过要包含stdlib.h,还有,最好不要在main函数里声明函数。

void IsMersenne(int x)
{
int i,j;
for(i=2;i<x;i++){
if(x%i==0)