数论(1)
质数
题目描述
给定一个整数 ,求的所有质数。
输入格式
输入一个整数 。
输出格式
按照从小到大的顺序输出答案。
样例输入 #1
1 9
样例输出 #1
2 3 5 7 11 13 17 19
数据范围和提示
对于 60%的数据,
对于 100%的数据,
解析
1.因为,所以可以用枚举。质数是不能被除了和本身以外正整数整除的数,所以可以用~的数依次除,代码如下:
bool Prime(int n){
for(int i=2;i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
2.可以发现不是整数所以省略后面的:
bool Prime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0)return 0;
}
return 1;
}
欧拉筛就不说了,因为不会这个数据范围用2够了
然后用一个循环判断质数,并输出质数:
for(int i=2;i<=n;i++){
if(Prime(i)){
cout<<i<<" ";
}
}
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
bool Prime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0)return 0;
}
return 1;
}
int main(){
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(Prime(i)){
cout<<i<<" ";
}
}
return 0;
}