首页 > 阿里面试第2题
头像
_易初_
编辑于 2021-08-04 10:26
+ 关注

阿里面试第2题


#include <iostream>
using namespace std;
#include<vector>
#include<string>

bool iszhishu(int num)
{
    for (int i = 2; i < num; i++)
    {
        if (num % i == 0) return false;
    }
    return true;
}

int main()
{
    vector<string>ret;
    int n, q;
    cin >> n >> q;
    int arr[100] = {0};
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
    int l_r[200][2];
    for (int i = 0; i < q; i++)
    {
        cin >> l_r[i][0]>>l_r[i][1];
    }
    for (int i = 0; i < q; i++)
    {
        if (arr[l_r[i][1]-1] < arr[l_r[i][0]-1])
            ret.push_back("no");
        else if (arr[l_r[i][1]-1] == arr[l_r[i][0]-1])
            ret.push_back("ok");
        else
        {
            if (arr[l_r[i][1]-1] % arr[l_r[i][0]-1] != 0) ret.push_back("no");
            else
            {
                if(iszhishu(arr[l_r[i][1]-1] / arr[l_r[i][0]-1])) ret.push_back("ok");
                else
                {
                    for (int m = l_r[i][0]; m < l_r[i][1]; m++)
                    {
                        if (arr[m] % arr[l_r[i][0]-1] == 0 && iszhishu(arr[m] / arr[l_r[i][0]-1]))
                        {
                            l_r[i][0] = m+1;
                        }
                        if (m == l_r[i][1] - 1)
                        {
                            if(arr[l_r[i][1] - 1] % arr[l_r[i][0] - 1] == 0 && iszhishu(arr[m] / arr[l_r[i][0] - 1]))
                                ret.push_back("ok");
                            else 
                                ret.push_back("no");
                        } 
                    }
                }
            }
        }
    }
    for (auto& re : ret)
    {
        cout << re << endl;
    }
    return 0;
}


更多模拟面试

全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐