欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

阿里國際筆試 阿里國際筆試題 阿里筆試 0331

筆試時間:2025年03月31日

歷史筆試傳送門:

2023春招秋招筆試合集

2024春招秋招筆試合集

第一題

題目:

小紅有一個正整數(shù) n,她想找出第 k 個不是 n 的因子的正整數(shù)。例如,當(dāng) n = 6 時:6 的因子有:1, 2, 3, 6,不是 6 的因子的數(shù)依次為:4, 5, 7, 8, 9, 10, ……。如果 k = 2,答案就是 5(第二個不是 6 的因子的數(shù))。

輸入描述

第一行輸入一個整數(shù) t,表示測試用例數(shù)。

接下來 t 行,每行包含兩個整數(shù) n 和 k。

1 ≤ t ≤ 10001 ≤ n, k ≤ 10?

輸出描述

對于每個測試用例,輸出一個整數(shù),表示第 k 個不是 n 的因子的正整數(shù)。

樣例輸入

2

6 2

6 10

樣例輸出

5

14

參考題解

因子預(yù)計算遍歷1到√n找出所有因子對(i和n/i)排序因子列表為后續(xù)二分查找做準(zhǔn)備動態(tài)邊界二分查找初始左邊界設(shè)為k(第k個非因子至少≥k)右邊界從k+因子數(shù)開始,動態(tài)倍增擴展直到覆蓋解精準(zhǔn)定位目標(biāo)值在最終確定的范圍內(nèi)進(jìn)行二分搜索通過upper_bound快速計算<=mid的因子數(shù)用mid - 因子數(shù)判斷是否達(dá)到k個非因子。

C++:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// Function to get all factors and sort them
vector<long long> getFactors(long long n) {
    vector<long long> factors;
    for (long long i = 1; i * i <= n; i++) {
        if (n % i == 0) {
            factors.push_back(i);
            if (i != n / i) {
                factors.push_back(n / i);
            }
        }
    }
    sort(factors.begin(), factors.end());
    return factors;
}

// Custom upper_bound function
int upperBound(const vector<long long>& list, long long target) {
    int left = 0, right = list.size();
    while (left < right) {
        int mid = left + (right - left) / 2;
        if (list[mid] <= target) {
            left = mid + 1;
        } else {
            right = mid;
        }
    }
    return left;
}

// Function to find the kth non-factor
long long findKthNonFactor(long long n, long long k, const vector<long long>& factors) {
    long long left = k;
    long long right = k + factors.size();
    
    // Dynamically extend the right boundary
    while (true) {
        long long mid = right;
        int cnt = upperBound(factors, mid);
        if (mid - cnt >= k) break;
        right *= 2;
    }

    // Binary search
    long long ans = 0;
    while (left <= right) {
        long long mid = left + (right - left) / 2;
        int cnt = upperBound(factors, mid);
        if (mid - cnt >= k) {
            ans = mid;
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    return ans;
}

int main() {
    int t;
    cin >> t;
    while (t-- > 0) {
        long long n, k;
        cin >> n >> k;
        vector<long long> factors = getFactors(n);
        cout << findKthNonFactor(n, k, factors) << endl;
    }
    return 0;
}

Java:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

import java.util.*;


public class Main {
    // 獲取所有因子并排序
    static List<Long> getFactors(long n) {
        List<Long> factors = new ArrayList<>();
        for (long i = 1; i * i <= n; i++) {
            if (n % i == 0) {
                factors.add(i);
                if (i != n / i) {
                    factors.add(n / i);
                }
            }
        }
        Collections.sort(factors);
        return factors;
    }


    // 自定義upper_bound
    static int upperBound(List<Long> list, long target) {
        int left = 0, right = list.size();
        while (left < right) {
            int mid = left + (right - left) / 2;
            if (list.get(mid) <= target) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }
        return left;
    }


    // 查找第k個非因子
    static long findKthNonFactor(long n, long k, List<Long> factors) {
        long left = k;
        long right = k + factors.size();
        
        // 動態(tài)擴展右邊界
        while (true) {
            long mid = right;
            int cnt = upperBound(factors, mid);
            if (mid - cnt >= k) break;
            right *= 2;
        }


        // 二分查找
        long ans = 0;
        while (left <= right) {
            long mid = left + (right - left) / 2;
            int cnt = upperBound(factors, mid);
            if (mid - cnt >= k) {
                ans = mid;
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return ans;
    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        while (t-- > 0) {
            long n = sc.nextLong();
            long k = sc.nextLong();
            List<Long> factors = getFactors(n);
            System.out.println(findKthNonFactor(n, k, factors));
        }
    }
}

Python:[此代碼未進(jìn)行大量數(shù)據(jù)的測試,僅供參考]

def get_factors(n):
    factors = []
    for i in range(1, int(n**0.5) + 1):
 

剩余60%內(nèi)容,訂閱專欄后可繼續(xù)查看/也可單篇購買

2025 春招筆試合集 文章被收錄于專欄

2025打怪升級記錄,大廠筆試合集 C++, Java, Python等多種語言做法集合指南

全部評論

相關(guān)推薦

笑死回答問題中途以為我網(wǎng)卡了,我揮了揮手,沒想到?jīng)]卡,面試官看到了,也跟我揮了揮手有點可愛面試官經(jīng)典模型應(yīng)用簡單八股&nbsp;Rag&nbsp;Functioncall&nbsp;MCP&nbsp;輪輪都問,都快問爛了庫庫吟唱就對了1.自我介紹&nbsp;個人情況2.AI的項目是什么背景?3.詳細(xì)介紹FunctionCall的原理?什么是智能路由開發(fā)?4.怎么實現(xiàn)的記憶功能?說說ZSET相關(guān)數(shù)據(jù)結(jié)構(gòu)和使用場景?5.知道MCP么,談?wù)勀愕睦斫?.RAG怎么理解的?大模型的幻覺是什么?7.知識庫搭建中有什么挑戰(zhàn)么?提供的文檔有做過處理么?有對數(shù)據(jù)去進(jìn)行一些處理么?8.pgvector的底層存儲,存儲原理,檢索調(diào)參有了解么?9.文生圖和圖生文是怎么實現(xiàn)的? 10.用了什么大模型,有集群部署么?qps怎么樣? 11.網(wǎng)盤項目說說吧,斷點續(xù)傳怎么實現(xiàn)的?12.多級緩存一致性?canal的原理?多級緩存解決什么問題?13.講講布隆過濾器?14.AOP的實現(xiàn)原理?閑聊:1.具體的業(yè)務(wù)是什么?Bravo102&nbsp;實習(xí)生計劃,海外的電商場景&nbsp;說有102個項目讓我們?nèi)ミx擇感興趣的2.AI體系下的搜推提效,AI的選品相關(guān),我看你還是對這方面還是比較有經(jīng)驗的3.筆試做了么?快快做哦&nbsp;(又是你,筆試,這一次我所失去的,我一定要加倍拿回來!!!!!!#??虯I配圖神器#)
查看14道真題和解析
點贊 評論 收藏
分享
評論
點贊
1
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)