十四届蓝桥杯软件赛省赛Java大学A组E题:互质数的个数,在求小于a的且与a互质的数的个数函数中为什么要定义一个times变量,且在times!=0时有res=resi%MOD;我的想法是只要a%i=0,即a可以整除i那么由欧拉函数的性质可得res=res(i-1);
4条回答 默认 最新
关注 在求小于a的且与a互质的数的个数函数中,定义一个times变量是为了统计与a不互质的数的个数,从而得到与a互质的数的个数。当times不为0时,表示存在与a不互质的数,需要将这部分数剔除掉,所以需要进行res *= i % MOD 的操作。
代码示例:
public class Main {private static final int MOD = 1000000007;
public static void main(String[] args) {int a = 10;
int result = countCoPrimeNumbers(a);
System.out.println(result);
}
public static int countCoPrimeNumbers(int a) {int res = a;
int times = 1;
for (int i = 2;
i <
a;
i++) {times = 1;
if (a % i == 0) {res = res * (i - 1) % MOD;
times = 0;
}}if (times != 0) {res = res * i % MOD;
}return res;
}}
有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐解决 无用评论 打赏 举报
悬赏问题
- ¥50 comsol温度场仿真无法模拟微米级激光光斑
- ¥15 上传图片时提交的存储类型
- ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
- ¥15 VB.NET如何绘制倾斜的椭圆
- ¥15 在rhel8中安装qemu-kvm时遇到“cannot initialize crypto:unable to initialize gcrypt“报错”
- ¥15 arbotix没有/cmd_vel话题
- ¥20 找能定制Python脚本的
- ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
- ¥15 用C语言怎么判断字符串的输入是否符合设定?
- ¥15 通信专业本科生论文选这两个哪个方向好研究呀