Thứ Tư, 27 tháng 4, 2022

PRIME1032 C++

#include<bits/stdc++.h>
using namespace std;

long int a[1000000];
bool p[2000000];
long int m,n,b,i,j,d,MAX;

bool ktnt(int x)
{
    if(x < 2)
        return 0;
    for(long int i = 2; i <= sqrt(x); i++)
    {
        if(x%i == 0)
            return 0;
    }
    return 1;
}

void sang_nguyen_to()
{
    p[1] = 1;
    for(long int i = 2; i <= trunc(sqrt(b)); i++)
    {
        if(p[i] == 0)
        {
            j = i*i;
            while(j <= b)
            {
                p[j] = 1;
                j = j+i;
            }
        }
    }
}

void tao_mang()
{
    
    d = 0;
    for(long int i = 1; i <= b; i++)
    {
        if(p[i] == 0)
        {
            d++;
            a[d] = i;
        }
    }
}
int main()
{   
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    
    freopen("prime1032.inp","r",stdin);
    freopen("prime1032.out","w",stdout);
    cin >> n;
    b = trunc(sqrt(n));
    sang_nguyen_to();
    tao_mang();
    MAX = 0;
    for(long int i = 1; i <= d; i++)
    {
        for(long int j = n/a[i]; j >= a[i+1]; j--)
        {
            if(ktnt(j) == 1)
            {
                if(a[i]*j > MAX)
                {
                    MAX = a[i]*j;
                }
                break;
            }
        }
    }
    cout << MAX;return 0;
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.