问题标题: 酷町堂:1062 寻找质因数

0
0
已解决
曲天歌
曲天歌
高级光能
高级光能
#include<iostream>
#include<cmath>
using namespace std;
int n,ans,maxz,x;
bool Judge(int x){
    if(x==1)    return false;
    for(int i=2;i<=sqrt(x);i++){
        if(x%i==0)
            return false;
    }
    return true;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        for(int j=1;j<=sqrt(x);j++){
            if(x%j==0&&Judge(x/j)){
                if(x/j>maxz){
                    maxz=x/j;
                    ans=x;
                }
                break;
            }
        }
    }
    cout<<ans;
    return 0;
 }

90分代码,哪位大佬能帮我改一下?谢谢


0
已采纳
汪恺恒
汪恺恒
中级启示者
中级启示者

这题要用埃氏筛

预处理

a[1]=1;
    for(int i=1;i<=sqrt(20000);i++){
        if(a[i]==0){
            for(int j=i*2;j<=20000;j+=i){
                a[j]=1;
            }
        }
    }

输入

循环n次{
        输入x;
        for(int j=x;j>=1;j--){
            if(a[j]==0&&j是x的因数){
                if(j>maxn){
                    maxn=j;
                    tmp=x;
                }
            }
        }
    }

最后输出tmp

我要回答