问题标题: 酷町堂:3893 可怕的质因数 大佬求优化

0
0
已解决
陈振轩
陈振轩
高级光能
高级光能
#include <iostream>
using namespace std;
int n,min_math=10000001,max_pri=0,cnt=0;
bool a[10000001];
void pri_math(){
    for(int i=1; i<=n; ++i) {
        cnt = 0;
        for(int j=2; j<=i; ++j){
        if(!a[j]) {
            for (int k=2*j; k<=i; k+=j){
                a[k]=true;
                if(k == i)
                    ++ cnt;
            }
        }
    }
        if(cnt>max_pri) {
            max_pri = cnt;
            min_math = i;
        }
    }
}
int main () {
    cin >> n;

    pri_math();
    cout << min_math << " " << max_pri;
    return 0;
}

 


0
已采纳
邓涵睿
邓涵睿
中级天翼
中级天翼

看不懂你的,不用如此复杂,定义两个数组,然后进行这个

  • for(long long i=2;i<=n;i++)
  • if(b[i]==0)
  • for(long long j=i*2;j<=n;j+=i)
  • b[j]++;
  • for(long long i=2;i<=n;i++)
  • if(b[i]>m){
  • m=b[i];
  • m_=i;
  • }
  • cout<<m_<<" "<<m;
我要回答