A. Bear and Prime 100——(交互題+數論)

總結

第二次寫交互題,慢慢有點感覺了,我問,他答,我給結果

算法核心

素數大於1,且只能被1和本身整除
合數大於1,且除了能被1和本身整除,還能被其他數整除,數量>=1
合數由至少兩個素數組成,且可以相同,可以不同

我們只需要看,他是否能被兩個素數整除:

先看是否能被兩個不同的素數整除:
枚舉[2,50]的素數存在15個,隱藏數字都不能被大於等於51的數整除
那麼一定是合數

如果存在被素數平方整除
2 3 5 7
4 9 25 49
那麼一定是何數

只需要看19個數字就可以判定是否爲素數

題意

我詢問不超20次,每次給一個數字,系統會根據隱藏數字回答是否被整除,當然這個隱藏數字在區間[2,100],如果確定了結果,就可以直接結束輸出素數還是合數,不用再詢問

題目鏈接

//#pragma GCC optimize(2)
//#pragma GCC target ("sse4")
#include<bits/stdc++.h>
//typedef long long ll;
#define ull       unsigned long long
#define int       long long
#define F           first
#define S           second
#define endl        "\n"//<<flush
#define eps         1e-6
#define base        131
#define lowbit(x)   (x&(-x))
#define PI          acos(-1.0)
#define inf         0x3f3f3f3f
#define MAXN        0x7fffffff
#define INF         0x3f3f3f3f3f3f3f3f
#define ferma(a,b)  pow(a,b-2)
#define mod(x)      (x%mod+mod)%mod
#define pb          push_back
#define decimal(x)  cout << fixed << setprecision(x);
#define all(x)      x.begin(),x.end()
#define memset(a,b) memset(a,b,sizeof(a));
#define IOS         ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
using namespace std;
void file()
{
#ifdef ONLINE_JUDGE
#else
    freopen("D:/LSNU/codeforces/duipai/data.txt","r",stdin);
    //  freopen("D:/LSNU/codeforces/duipai/WA.txt","w",stdout);
#endif
}
signed main()
{
   // IOS;
  //  file();
    int cnt=0;
    vector<int>vec;
    for(int i=2;i<=100;i++)
    {
        int flag=1;
        for(int j=2;j*j<=i;j++)
            if(i%j==0)
                flag=0;
        if(flag)
            vec.pb(i),cout<<i<<endl;
    }
    vec.pb(4);
    vec.pb(9);
    vec.pb(25);
    vec.pb(49);
    sort(all(vec));
 /*   for(int i=0;i<20;i++)
        cout<<vec[i]<<endl;*/
    for(int i=0;i<19;i++)
    {
        cout<<vec[i]<<endl;
        string str;
        cin>>str;
        if(str=="yes")
            cnt++;
        if(cnt==2)
        {
            cout<<"composite"<<endl;
            goto good;
        }
    }
    cout<<"prime"<<endl;
    good:;





    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章