• 计算机考研复试真题 素数


    题目描述

    输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

    输入描述:

    输入有多组数据。
    每组一行,输入n。

    输出描述:

    输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。
    示例1

    输入

    100
    

    输出

    11 31 41 61 71





    //计算机考研复试真题  素数
    /*
    程序设计思想:先求出每个数的素数,存入向量,然后判断输出即可。
    */
    //程序实现:
    #include<iostream>
    #include<vector>
    using namespace std;
    
    vector<int> prime(int n){    //求一个数的所有素数
        int i,j;
        vector<int>v;
        for(i=10;i<n;++i){    //因为输出不包括1和这个整数,且个位为1的素数,故从10开始。
            bool flag=false;
            for(j=2;j<i;++j){    //找10到n之间的素数
                if(i%j==0){     //能被整除则一定不是素数
                    flag=true;
                    break;
                }
            }
            if(flag==false)
                v.push_back(i);
        }
        if(v.size()==0)    //如果没有则输出-1
            v.push_back(-1);
        return v;
    }
    
    int main(){
        int n;
        while(cin>>n){
            vector<int>v1;
            v1=prime(n);
            bool flag=false;
            for(int i=0;i<v1.size()-1;++i){  //遍历素数
                if(v1[i]%10==1){    //满足条件
                    flag=true;
                    cout<<v1[i]<<" ";
                }
            }
            if(v1[v1.size()-1]%10==1){
                    flag=true;
                    cout<<v1[v1.size()-1]<<endl;
                }
            if(flag==false)    //不满足条件
                cout<<-1<<endl;
        }
        return 0;
    }
  • 相关阅读:
    工作流调度器Azkaban的安装配置
    MySQL初学入门基础知识-sql语句
    spark大数据生态架构
    快速排序算法——分析及总结 (非常好)
    经典的大数据面试题总结
    flume采集数据报错问题解决
    haproxy官方文档
    问题
    2016/6/7学习记录
    2016
  • 原文地址:https://www.cnblogs.com/parzulpan/p/9975943.html
Copyright © 2020-2023  润新知