文章
34
粉丝
179
获赞
13
访问
199.0k
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
using namespace std;
int a[10000]={0};
int main(){
//暴力求解法
int n;
while(cin>>n){
int count=0;
for(int i=2;i<n;i++){
for(int j=2;j<=sqrt(i);j++){
if(i % j==0){ //非素数
a[i]=1; //标记为1
break;
}
}
}
for(int i=2;i<n;i++){
if(a[i]==0 && i%10==1){
if(i==n-1){
printf("%d",i);
count++;
}
else{
printf("%d ",i);
count++;
}
}
}
if(count!=0) printf("\n");
else printf("-1\n");
}
return 0;
}
感觉写的还是挺啰嗦的,到后面自己思路都不清楚。
整体思路是把非素数标记为1,然后遍历,遇到没有标记的且尾数为1的就输出来,因为如果一个都没有的话要输出-1,所以加上一个count变量,count!=0说明肯定至少...
登录后发布评论
暂无评论,来抢沙发