#include <iostream>
#include <cmath>
using namespace std;
bool prime(int);
int main ()
{cout<<"please input an integral:";
int n;
cin>>n;
if (prime)
cout<<n<<" is a prime."<<endl;
else
cout<<n<<" is not a prime."<<endl;
return 0;
}
bool prime (int m )
{int i,k;
bool prime;
k=int(sqrt(m));
for(i=2;i<=k;i++)
if(m%i==0) prime=false;
else prime=true;
return 0;
}
C++求素数
答案:4 悬赏:70 手机版
解决时间 2021-01-22 12:34
- 提问者网友:低吟詩仙的傷
- 2021-01-22 08:59
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-01-22 09:40
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int);
int main ()
{cout<<"please input an integral:"<<endl;
int n;
cin>>n;
if (prime(n)) //注意是prime(n),因为函数是有参数的
cout<<n<<" is a prime."<<endl;
else
cout<<n<<" is not a prime."<<endl;
return 0;
}
bool prime (int m )
{int i,k;
bool prime;
k=int(sqrt(m));
for(i=2;i<=k;i++)
{if(m%i==0) prime=false;
break;} //若能整除,说明不是素数,跳出循环
if(i==(k+1)) prime=true; //若正常结束循环,则说明m是素数,i=k+1
return prime; //应该是return prime
}
#include <cmath>
using namespace std;
bool prime(int);
int main ()
{cout<<"please input an integral:"<<endl;
int n;
cin>>n;
if (prime(n)) //注意是prime(n),因为函数是有参数的
cout<<n<<" is a prime."<<endl;
else
cout<<n<<" is not a prime."<<endl;
return 0;
}
bool prime (int m )
{int i,k;
bool prime;
k=int(sqrt(m));
for(i=2;i<=k;i++)
{if(m%i==0) prime=false;
break;} //若能整除,说明不是素数,跳出循环
if(i==(k+1)) prime=true; //若正常结束循环,则说明m是素数,i=k+1
return prime; //应该是return prime
}
全部回答
- 1楼网友:鸠书
- 2021-01-22 11:50
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int);
int main ()
{
cout<<"please input an integral:";
int n;cin>>n;
if (prime(n))
cout<<n<<" is a prime."<<endl;
elsecout<<n<<" is not a prime."<<endl;
return 0;
}
bool prime (int m )
{
int i,k;
k=int(sqrt(m));
for(i=2;i<=k;i++)
if(m%i==0)
return false;
return true;
}
这样就对了,把不必要的中间变量省去,更加紧凑了。
- 2楼网友:思契十里
- 2021-01-22 10:40
这里的 if(j>=sqrt(i)){ cout<<i<<" "; cnt++; 改成if(j>sqrt(i)) 因为如果j=sqrt(i)时而且i=(sqrt(i))*(sqrt(i)) 时就不是素数了。因为它可以被sqrt(i)除尽。 else continue; 这两句也可以去掉,因为如果不满足if()的条件,程序会自己继续进行。 这里的if(cnt==10) 也可以改为if(cnt%10==0) 效果一样,更简便。 这里的括号也错了。 #include"iostream.h" #include"math.h" void main() { int 窢迹促克讵久存勋担魔cnt=0,i,j; for(i=13;i<=100;i++) for(j=2;j<=sqrt(i);j++){ 这个 移到最左边。 if(i%j==0) break; else continue; } 这个要放在最后。 if(j>=sqrt(i)){ cout<<i<<" "; cnt++; } if(cnt==10){ cout<<endl; cnt=0; } }
- 3楼网友:西风乍起
- 2021-01-22 10:32
是帮你改还是我重新写一个
帮你写的
#include<iostream>
#include<stdlib.h>
using namespace std;
bool prime(int n)
{
int i;
if(n<2)
return 0;
for(i=2;i<n;i++)
if(n%i==0)
break;
if(i==n)
return 1;
else
return 0;
}
int main()
{
int n;
cout<<"请输入一个不为0的自然数:";
cin>>n;
if(prime(n))
cout<<n<<"是素数!"<<endl;
else
cout<<n<<"不是素数!"<<endl;
system("pause");
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯