D. Two Divisors

筛法

我发现了,这种题还是挺容易卡时间的
要多用筛法防止超时
这题就是一个简单的质因数分解。
如果当前的数有至少两个质因数的话
那么就ok否则就no

#include<iostream>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;
const int max_n = 5e5+100;
const int max_m = 1e7+100;
pii ans[max_n];
int n;
int isprime[max_m];
int prime[max_m];

int main(){
    fill(prime,prime+max_m,-1);
    for (int i=2;i<=10000000;++i){
        if (isprime[i]!=0)continue;
        for (int j=i+i;j<=10000000;j+=i){
            isprime[j]++;
            prime[j]=i;
        }
    }
    scanf("%d",&n);
    for (int i=1;i<=n;++i){
        int num;scanf("%d",&num);
        if (isprime[num]<2)ans[i]=pii(-1,-1);
        else {
            int f = prime[num];
            while (num%f==0)num/=f;
            ans[i]=pii(f,num);
        }
    }
    for (int i=1;i<=n;++i)printf("%d ",ans[i].first);printf("\n");
    for (int i=1;i<=n;++i)printf("%d ",ans[i].second);
}
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
贺兰星辰:不要漏个人信息,除了简历模板不太好以外你这个个人简介是不是太夸大了...
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务