一个c++的素数的有关问题,帮帮忙
一个c++的素数的问题,请教高手帮帮忙
1到1000的数,是素数返回1,不是返回0;
这么个问题就郁闷了,呵呵菜鸟就是菜鸟,高手帮帮忙吧
------解决方案--------------------
int primer(int n)
{
for(int i=2;i*i <=n;i++)
if(n%i==0)
return 0;
if(i*i> n)
return 1;
}
------解决方案--------------------
楼主的问题有毛病吧,1到10000之间的数,遇到素数就返回1????
那岂不是肯定返回1了,而且只能找到第一个素数程序就结束了?
下面是输出1到10000之间所有素数的算法:
void main()
{
int n,i,k;
for(n=1;n <10000;n++)
{
k=(int)sqrt(n);
for(i=2;i <=k;i++)
{
if(n%i==0)
{
break;
}
}
if(i> k)
cout < <n < < "是素数 " < <endl;
}
}
1到1000的数,是素数返回1,不是返回0;
这么个问题就郁闷了,呵呵菜鸟就是菜鸟,高手帮帮忙吧
------解决方案--------------------
int primer(int n)
{
for(int i=2;i*i <=n;i++)
if(n%i==0)
return 0;
if(i*i> n)
return 1;
}
------解决方案--------------------
楼主的问题有毛病吧,1到10000之间的数,遇到素数就返回1????
那岂不是肯定返回1了,而且只能找到第一个素数程序就结束了?
下面是输出1到10000之间所有素数的算法:
void main()
{
int n,i,k;
for(n=1;n <10000;n++)
{
k=(int)sqrt(n);
for(i=2;i <=k;i++)
{
if(n%i==0)
{
break;
}
}
if(i> k)
cout < <n < < "是素数 " < <endl;
}
}