<-<-<-<-大佬点个赞吧qwq
题目传送门
题目描述
输入一个整数 n,要求输出所有从 1 到这个整数之间(不包括 1 和这个整数)个位为 1 的素数,如果没有则输出 −1。
样例输入
100
样例输出
11 31 41 61 71
注意点:不包含1和那个数(吼
不包含1和那个数(吼
不包含1和那个数(吼
重要的事情说三遍!!!!!
下面开始解题
算法1
一个一个算(不超时
C++ 代码
#include<bits/stdc++.h>
using namespace std;
bool ok(int n){
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}//判断素数(原始方法,大佬勿喷)
//当然,你也可以用素数筛做预处理^_^
int main(){
int n,i;
bool kk=1;
while(cin>>n){//读入
kk=1;//判断有没有找到素数
for(i=2;i<n;i++){//枚举(不含1和数本身!
if(i%10==1 and ok(i)){
cout<<i<<" ";//输出
kk=0;//标记找到
}
}
if(kk==1)//如果没找到,输出-1
cout<<-1;
cout<<endl;
}
return 0;
}//完美撒花~
互赞~
ok
完了!小黑子入侵acwing了!(bushi)
啊哈哈