Project Euler_Problem 193_Few Repeated Digits_欧拉筛+容斥公式

原题目:

题目大意:

解题思路:

代码:

cpp 复制代码
void serch(ll I,ll sum,ll used) {
    ll i, j, l, x,y;

    
    for (i = 1; i < I; i++) {
        if (sum * D[i] > N)break;
        x = sum * D[i];
        y = N / x;

        if (used % 2 == 0) {
            ans1 = ans1 - y;
        }
        else {
            ans1 = ans1 + y;
        }

        serch(i, x, used + 1);

    }

}


void solve() {
    ll i, j,k,x,y,z,p,q,u,v;
    N = (( (ll)1 )<<50), NN = 4;
    //N = 20;
    double a, b, c,d;
    M.NT.get_prime_Euler(100000000);
    
    for (i = 1; i <= M.NT.pcnt; i++) {
        x = M.NT.prime[i];
        if (x * x > N)break;
    }

    ll len = i - 1;

    for (i = 1; i <= len; i++) {
        D[i] = M.NT.prime[i] * M.NT.prime[i];
        ans1 = ans1 + N / D[i];
    }

    for (i = len; i >= 1; i--) {
        serch(i, D[i], 2);
    }
    

    printf("%lld\n",N-ans1);
}
相关推荐
孟祥_成都5 小时前
nextjs 16 基础完全指南!(一) - 初步安装
前端·next.js
程序员爱钓鱼5 小时前
使用简单 JSON + 自定义 t 函数实现轻量多语言国际化(无需 next-intl)
前端·javascript·trae
代码不停5 小时前
Java单链表和哈希表题目练习
java·开发语言·散列表
Dxxyyyy5 小时前
零基础学JAVA--Day37(坦克大战1.0)
java·开发语言
一 乐5 小时前
助农平台|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·ecmascript·springboot
vivo互联网技术5 小时前
浅谈 AI 搜索前端打字机效果的实现方案演进
前端·vue·dom
●VON5 小时前
Electron 小游戏实战:太空打砖块(Space Breakout)
前端·javascript·electron
新晨4375 小时前
Vue 3 定时器清理的最佳实践
javascript·vue.js
OranTech5 小时前
第28节课-夕夕超市收银系统(下)-笔记
java
重铸码农荣光5 小时前
深入理解 JavaScript 原型机制:从“如何拿到小米 SU7”说起
前端·javascript