一个c++素数问题
发布网友
发布时间:2022-05-22 07:45
我来回答
共2个回答
热心网友
时间: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';
}
}
//你的算法很好,我都给你保留着的。
希望我们以后可以一起讨论C++追问对了,那个q1w2e300931是我的小号。 我以为那个不可以提问,谁知道还提问出去了。
我也希望我们可以一起讨论C++ 加我QQ吧:378043784
热心网友
时间:2024-03-07 10:03
#include<iostream>
#include<math.h>
using namespace std;
bool IsPrime(int n)
{
if(n<2)
return false;
if(n==2||n==3)
return true;
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
void PrintPrime(int n)
{
for(int i=2;i<=n;i++)
{
if(IsPrime(i))
cout<<i<<"";
}
cout<<endl;
}
int main()
{
int n;
cout<<"输入一个正整数:";
cin>>n;
cout<<"小于等于"<<n<<"的素数有:"<<endl;
PrintPrime(n);
return 0;
}