Problem A
问题 A: 素数
时间限制: 1 Sec 内存限制: 32 MB提交: 349 解决: 138
[提交][状态][讨论版][命题人:外部导入]
题目描述
输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。
输入
输入有多组数据。
每组一行,输入n。
输出
输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
样例输入
70
样例输出
11 31 41 61
简单的求素数的题
#include<bits/stdc++.h> using namespace std; const int N=1e4+10; int prime[N]; bool vis[N]; int cnt=0; void isprime(int n) { fill(vis,vis+N,false); cnt=0; for(int i=2; i<n; i++) { if(!vis[i]) { prime[cnt++]=i; } for(int j=i+i; j<n; j+=i) { vis[j]=true; } } } int main() { int n; while(scanf("%d",&n)==1) { isprime(n); vector<int>vec; for(int i=0; i<cnt; i++) { if(prime[i]%10==1) { vec.push_back(prime[i]); } } if(vec.size()==0) printf("-1\n"); else { for(int i=0; i<vec.size(); i++) { if(i) printf(" "); printf("%d",vec[i]); } printf("\n"); } } return 0; }