sicily 1752.选择

来源:互联网 发布:儿童编程教育连锁机构 编辑:程序博客网 时间:2024/05/29 11:46

这题TLE好久。。。最后用map勉强通过吧。。0.78s。。

#include <iostream>#include <vector>#include <cmath>#include <map>using namespace std;struct info{    int number;    int pos;};bool isValue(int a){    if(a == 2)        return true;    int b = sqrt(a + 0.5);    for(int i = 2;i <= b;i++)    {        if(a % i == 0)            return false;    }    return true;}int main(){    int n;    map<int,int> m;    map<int,int>::iterator pos;    m.clear();    int count = 0;    for(int i = 2;i < 1000000;i++)    {        if(isValue(i))        {            count++;            m[i] = count;        }                    }    while(cin >> n && n != -1)    {                //int count = 0;        //count = binary_search(data,n);        pos = m.find(n);        cout << pos->second << endl;    }    return 0;}                                 


原创粉丝点击