当前位置: 首页 > news >正文

召唤数学精灵

1.召唤数学精灵 - 蓝桥云课

问题描述

数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。

累加法仪式 A(n) 是将从1到 n 的所有数字进行累加求和,即:
A(n)=1+2+⋯+n

累乘法仪式 B(n) 则是从1到 n 的所有数字进行累乘求积,即:
B(n)=1×2×⋯×n

据说,当某个数字 i 满足 A(i)−B(i) 能被100整除时,数学精灵就会被召唤出来。

现在,请你寻找在1到2024041331404202之间有多少个数字 i,能够成功召唤出强大的数学精灵。

答案提交

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

思路:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e4;
ll n = 2023041331404202;
ll ad[N],chen[N],ans = 0;
int main(void)
{
    ll a = 0,b = 1;
    for(ll i = 1 ; i <= 1000 ; i++)
    {
        a =(a+i)%100;
        b =(b*i)%100;
        ll t = (b - a) % 100;
        if(t % 100 == 0) cout<<i<<endl;  
    }
    return 0;
}

我们可以发现,从200以后开始,每200个数字都会出现4次。1~200的数字出现6次,不满足周期。所以我们要减去前200的数字。注意,这里是划分数字,减去200不是缩小范围

  • 为何减去200?:这是将总范围分割为前200和后续部分,确保前200个被单独处理,而后续部分应用周期性规律。减法仅用于计算剩余数字的数量,不会减少实际范围。

  • 是否遗漏前200的解?:不会,前200的解已单独计算并加到总结果中。后续的周期性计算仅针对201到N的部分。

所以答案就是(2024041331404202 / 200)*4 + 6

代码:

#include <iostream>
using namespace std;
int main()
{
  cout << ll(2024041331404202 / 200)*4 + 6;
  return 0;
}

相关文章:

  • Jiangxi Province Baseball Softball Development Plan【江西棒垒球】
  • AI提示语:生成演示文稿 PPT
  • 将内网的IP地址映射到外网的几种方案
  • 堆叠虚拟化
  • Spring Boot分布式项目重试实战:九种失效场景与正确打开方式
  • JavaScript中 == 和 === 区别
  • 汇编语言学习前言
  • Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现
  • 12-SpringBoot3入门-项目打包和运行
  • 【力扣hot100题】(024)环形链表
  • kali配置固定IP
  • AI 数字人短视频数字人口播源码:短视频内容生产的新引擎​
  • axios介绍以及配置
  • 【LeetCode】二叉树的递归遍历
  • promise使用及其方法
  • CMake在Windows环境下Visual Studio Code的使用
  • 利用deepseek直接调用其他文生图网站生成图片
  • [VolgaCTF 2025] Baby-Welcome,BrokeBroke,Field Rules
  • nginx的自定义日志
  • 爬虫:网络请求(通信)步骤,http和https协议
  • 定制开发网站多少钱/网络推广公司服务内容
  • 营销型网站的建设流程/深圳网络营销推广服务
  • 网站添加属性/新网站多久会被百度收录
  • 龙岗网站建设服务/如何做好线上推广
  • 网站开发为什么采取ssh框架/外贸推广公司
  • 网站建设推广小王熊掌号/seo公司怎么推广宣传