2801 - ab区间所有素数
时间限制 : 1 秒
内存限制 : 128 MB
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。
小智想找出a和b之间的所有素数,想把这些素数都列出来,如果不存在,则用“No“表示。你能编程解决吗?
题目输入
一行:a和b,(0<=a<b<=1000000)
题目输出
一行:所有素数,每个素数后面有一个空格
输入/输出样例
输入格式
1 10
输出格式
2 3 5 7
C++解答
#include<iostream> #include<cmath> using namespace std; bool ss(int ); int main() { int n,m,k=0,j=0,l=0; cin>>n>>m; for(int i=n;i<=m;++i) { if(ss(i)==0) ++j; } for(int i=n;i<=m;++i) { if(ss(i)==0) { cout<<i<<" "; ++l; } } if(l==0)cout<<"No"; return 0; } bool ss(int a) { if(a==1||a==0)return 1; else { int x=2; int b=floor(sqrt(a)); while(x<=b&&(a%x!=0)) ++x; if(x>b)return 0; else return 1; } }