RE 了没法开到足够大的数组怎么办?
查看原帖
RE 了没法开到足够大的数组怎么办?
759651
fengfenglong楼主2022/9/10 09:53
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <bits/stdc++.h>
#include <math.h>
#include <string>
#include <cstring>

using namespace std;
//#define PI 3.1415926
bool isprime[20000100]={0};
int zhishu(long long n)
{
    memset(isprime,true,sizeof(isprime));
    isprime[1] = false;

    for(int i = 2;i <= n;i++)
    {
        if(isprime[i])
        {
            for(int j = 2;j*i <= n;j++)
            {
                isprime[i*j] = false;
            }
        }
    }
    return 0;
}
int main()
{
long long n,max;
long long shuzu[100000100];
int shuliang;
cin >> n;
zhishu(n);
for(int i = 1,j = 0;i <= n;i++)
{
    if(isprime[i])
    {
        shuzu[j] = i;
        //cout << shuzu[j] <<endl;
        j+=1;
        shuliang = j-1;
    }
}
for(int i = 0;i <= shuliang;i++)
{
    for(int j = 0;j <= shuliang;j++)
    {
        if(shuzu[i]*shuzu[j] == n&&(i >= max||j >= max))
        {
            if(shuzu[i] > shuzu[j]) 
           { 
           max = shuzu[i];
            }
            else if(shuzu[i] < shuzu[j])
            max = shuzu[j];
        }
    }
}
cout << max;
return 0;
}

2022/9/10 09:53
加载中...