弹药科技

本文介绍了一道数学编程题目,涉及炸弹装弹位置的计算。博士的炸弹有N!个可能位置,但只有满足gcd(i, N!) ≠ 1且N! mod i ≠ 0的条件的位置才能装弹药。通过反向思考,可以得出解题公式:ans = N! - 欧拉函数(N!) - N!的因数个数 + 1,并提供了欧拉函数和因数个数的计算方法。" 112429049,10294616,Python面向对象实践:学校管理系统类设计,"['Python编程', '面向对象', '类实例化', '异常处理', '数据结构']
摘要由CSDN通过智能技术生成


目录

一.题目

题目描述

输入

输出

样例输入

样例输出

提示

二.题解

三.代码

谢谢!


一.题目

题目描述

经过精灵族全力抵挡,精灵终于坚持到了联络系统的重建,于是精灵向人类求助,大魔法师伊扎洛决定弓}用博士的最新科技来抗敌。
伊扎洛:“博士,还没好吗?”
博士:“只差一步了!只需要在正确的位置装上弹药就可以了!”
博士的最新科技是全新的炸弹,但是现在还需要一步装弹药的操作。博士的炸弹有N!个位置可以装弹药(>.<),但是只有在正确的位置装上弹药才能启动,博士将装弹药的位置编号为1到N!,一个位置i需要装弹药,当且仅当gcd(i, N!) ≠ 1且N! mod i ≠ 0,现在博士不要求你求出所有装弹药位置,只需要你求出满足要求的位置的数量就可以了。

输入

一个数N

输出

表示满足要求的位置数量,答案对mod1000000007输出

样例输入

4

样例输出

9

提示

【数据范围】
N <= 1000000

二.题解

这道题其实已经很明显了,大家可以反着想&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值