c++求素数

调试出1-100存在的素数.
老师给的函数原型 bool is_prime(int number);//number是1和100之间的整数。本来会做的,老师给个这个函数原型,一下子就不怎么该怎么办了,在线等。

1到100你穷举就可以了。。
bool is_prime(int number)

{
int i;

if ( number == 1) return false;

for( i = 2; i < number; i++)

if ( number % i == 0)

return false;

return true;

}

求素数最常见的一种方式是筛法
void main()
{
int count=0;
int *prime,i,k;
long MAX;
cin>>MAX;
prime=new int[MAX];
for (i=0;i<MAX;i++)
prime[i]=0;
prime[0]=prime[1]=1;
for(i=0;i<MAX;i++)
if (prime[i]==0)
{
for(k=2;k*i<MAX;k++)
prime[k*i]=1;
}
for (i=2;i<MAX;i++)
if (prime[i]==0)
{
cout<<i<<"\t";
count++;
// if (count==10)
// cout<<endl;
}
cout<<endl;
//cout<<count<<endl;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-13
bool is_prime(int number)
这个函数是用来判断是否为素数的,bool,意思是返回值为为bool类型
是素数就返回return true
不是就返回return fase
就是这样!还需要代码嘛?追问

对不起,我真的是个菜鸟,能不能请前辈把这个调试码写一下啊。摆脱了。

追答#include <iostream>
using namespace std;
bool is_prime(int number)
{
if(number==1)//1不是素数
return false;
if(number==2)//2是素数
return true;
for(int i=2;i*i<=number;i++)
if(number%i==0)
return false;//找到因子就返回false
  return true;
}
int main()
{
int count=0;
for(int i=1;i<=100;i++)
{
if(is_prime(i))
{
count++;
if(count%10==0)//每输出10个数就换行
cout<<endl;
cout<<i<<"   ";
}
}
}

这是代码,如果有疑问的话,可以继续追问!我会尽力满足你的要求的!

本回答被提问者和网友采纳
第2个回答  2013-09-13
这个函数原型,是要你实现一个判断,判断传入的数字number是不是素数.该函数可供外重循环1-100调用.
相似回答