m
点赞 评论

相关推荐

08-18 01:04
蚌埠学院 C++
第一题想不明白为什么会报0。思路:预处理1e5的素数,遍历素数集和中n的约数,直接输出。数量级:1e6#include<bits/stdc++.h>#include <vector>using namespace std;/*#define int long long*/#define endl '\n'#define P pair<int, int>#define x first#define y secondconst int maxl = 1e5 + 7;vector<int> prime; // 9592个素数bool flag[maxl];// 预处理void init() {    int n = 1e5;    for (int i = 2; i <= n; i++) {        if (!flag[i]) prime.push_back(i);        for (int p : prime) {            if (p * i > n) break;            flag[p * i] = 1;            if (i % p == 0) break;        }    }}void slove() {    int n;    cin >> n;    for (int p : prime) {        if (n % p == 0) {  // 判断此素数是否是n的约数            cout << n / p << endl;            return;        }    }}signed main(){    ios::sync_with_stdio(0);    cin.tie(0), cout.tie(0);    int t = 1;    cin >> t;    init();    while(t--) slove();    return 0;}
查看1道真题和解析 投递美团等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客企业服务