C++素数问题,请来看一下。
发布网友
发布时间:2022-05-22 07:45
我来回答
共3个回答
热心网友
时间:2024-03-07 10:03
你的void Sprint(int & n)中的for 循环有问题,你想一下,一旦你将judg置为0后,以后的循环还会有输出吗,肯定没有滴,修改如下,希望对你有帮助
void Sprint(int & n)
{
int i=1,j=0,judg=1;
for(i=1;i<=n;i++)
{
for(j=2;j<=int(sqrt(i));j++){
if(i%j==0 && i!=j)judg=0;
}
if(judg){
cout<<i<<' ';
}
judg=1;
}
}
热心网友
时间:2024-03-07 10:03
我想问一下 你这个程序想完成的功能是什么?
另外你用的是什么编译器。我用vc2008编译时出现很多问题。
热心网友
时间:2024-03-07 10:03
#include <iostream.h>
#include <math.h>
void Sprint(int &);
int main()
{
int num=0;
cin>>num;
while(num)
{
Sprint(num);
cout<<endl;
cin>>num;
}
return 0;
}
void Sprint(int &n)
{
int i=1,j=0,judg=1;
for(i=2;i<=n;judg=1,i++)
/*你的问题就出在这里,judg被赋值为0后,下次徇环就要再重新赋值为1,还有,这里的for 徇环初值要从2开始,因为1不是素数,也不是合数。*/
{
for(j=2;j<=(int)sqrt(i);j++)// 这里的类型转换应该把括号加在"int"上,而不是后面部分哟
if(i%j==0 && i!=j)
judg=0;
if(judg)
cout<<i<<'\t';
}
}
跟前一个同学应该是一个人吧,觉得还是应该帮你。追问跟前一个同学应该是一个人吧,觉得还是应该帮你。
嘿嘿,这句话什么意思啊?