九度OJ--1163(C++)

Posted LZ_Jaja

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了九度OJ--1163(C++)相关的知识,希望对你有一定的参考价值。

#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++)的主要内容,如果未能解决你的问题,请参考以下文章

九度OJ--1167(C++)

C++ 简易加减乘除运算(九度OJ 1116)

九度oj1002

九度oj 1048

九度oj 1064 反序数

九度oj 1046 求最大值