码迷,mamicode.com
首页 > 编程语言 > 详细

九度OJ--1163(C++)

时间:2016-05-31 10:13:09      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <vector>

using namespace std;

int main() {

  int n;

  while(cin>>n) {

    vector<int> vec;

    int num = 0; // num用来记录1~n中共有多少个符合要求的素数,其实只是0和非0的区别

    for(int i=11; i<n; i++) {

      int flag = 0; // flag意在判断对于某个整数i是否为素数,若为素数flag=1,否则flag=0

      for(int k=2; k<i/2+1; k++) { // 若判定条件为k<sqrt((double)i),则结果错误

        // 一旦除尽证明i不是素数,判断下一个i即可
        if(i%k == 0) {
          flag = 0;
          break;
        }
        // 若没有除尽,则继续循环
        else {
          flag = 1;
          continue;
        }
      }

      if(flag == 0) { // i不是素数
        continue;
      }
      else { // i是素数
        if(i%10 == 1) { // i的个位是1
          vec.push_back(i);
          num = num + 1;
          continue;
        }
        else { //i的个位不是1
          continue;
        }
      }
    }

    if(num == 0) {
      cout<<"-1"<<endl;
    }
    else {
      for(int m=0; m<vec.size()-1; m++) {
        cout<<vec[m]<<" ";
      }
      cout<<vec[vec.size()-1]<<endl;
    }

  }

  return 0;

}

九度OJ--1163(C++)

标签:

原文地址:http://www.cnblogs.com/zlian2016/p/5544782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!