arc110a

arc110a

大意

给定 \(N\)

求一个 \(x\in [N,10^{13}]\) ,满足任意正整数 \(y\in [2,N]\) ,$y\mid (x-1) $

思路

最基本的思路, \((x-1) = N!\) ,这是显然满足 \(y|(x-1)\) 的,但是 \(30!\approx 10^{32}\) 远超 \(10^{13}\) ,需要想办法减小。

考虑分解质因数,根据唯一分解定理 \(x-1\) 一定能分解为 \(N\) 以内的质数的有限次方的乘积。

然后不难发现,若对于质数 \(p\)\(p^c \leq N\)\(p^{c+1} > N\) ,那么 \(p^c\mid x\) 且不存在 \(r\in[2,N]\) ,使 \(p^{c+1}\mid r\)

所以我们只需要将 \(N\) 以内的质数的不大于 \(N\) 的次方乘起来即可。

代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;

#define ll long long
#define ull unsigned long long
#define cint const int&
#define Pi acos(-1)

const int mod = 998244353;
const int inf_int = 0x7fffffff;
const ll inf_ll = 0x7fffffffffffffff;
const double ept = 1e-9;

ull ans=1;
ull n;

int main() {
    cin >> n;
    for(int i=2; i<=n; i++) 
        if(ans % i){
            ull t = i;
            while(t*i<=n) t*=i;
            ans *= t;
        }
    cout << ans+1;
    return 0;
}

-4,15min

posted @ 2020-12-10 20:41  ullio  阅读(97)  评论(0编辑  收藏  举报