因数:也称约数,如果整数a除以整数b,商为整数且余数为0,则称b 是a的因数。例如:1、2、3、6 都是6的因数。
素数:也称质数,是指在大于1的自然数中,除了1和它本身以外没有其他因数的数。例如:2、3、5 是素数,4、6、8 不是素数。
平方数:指的是可以写成某个整数的平方的数。例如:4(2^2)、9(3^2)、16(4^2)都是平方数。
莫比乌斯函数 μ(n) 是指以下的函数:
1) 若n=1,则μ(n)=1
2) 若n的因数中有大于1的平方数,则μ(n)=0
3) 若n的因数中没有大于1的平方数,且n=P1,P2……Pk,则μ(n)=(-1)k,注:P,P…P.表示k(k≤1)个不同素数的乘积
例如:
1) 8的因数有1、2、4、8,其中大于1的平方数有4,所以μ(8)=0;
2) 15的因数有1、3、5、15,没有大于1的平方数,且15=3×5,所以μ(15)=(-1)2=1;
3) 30的因数有1、2、3、5、6、10、15、30,没有大于1的平方数,且30=2×3×5,所以μ(30)=(-1)3=-1
给定两个正整数m、n,请计算m到n之间(含m和n)所有整数的莫比乌斯函数值之和。
输入格式
一行输入两个正整数m和n(1≤m≤n≤2×107) ,整数之间以一个空格隔开
输出格式
输出一个整数,表示m到n之间(含m和n)所有整数的莫比乌斯函数值之和
输入样例
1 10
输出样例
-1
相似题推荐
给定一个奇数n和一个大写字母Center,生成一个n*n的字符矩阵。字符矩阵由大写字母和'.' (注意: '.' 为英文句号)组成,并且所有大写字母组成一个n行的萎形,菱形的中心位置为大写字母Center,菱形中的大写字母规律参照”下列三组样例。
输入样例1:
3 C
输出样例1:
.B. BCB .B.
输入样例2:
5 Z
输出样例2:
..X.. .XYX. XYZYX .XYX. ..X..
输入样例3:
9 E
输出样例3:
....A.... ...ABA... ..ABCBA.. .ABCDCBA. ABCDEDCBA .ABCDCBA. ..ABCBA.. ...ABA... ....A....
给定包含n个整数的数列,从中选取一段连续子数列,使其元素之和能被k整除。
请找出符合要求的最长连续子数列并输出其长度以及子数列本身;如果符合要求的最长连续子数列有多个,则输出起始位置最靠后的那个子数列。如果不存在符合要求的子数列,则输出-1。
例如:n=7,k=7,数列为7、3、4、1、5、14、9;
连续子数列{7}、{7,3,4}、{3,4}、和{5,14,9}的和都能被7整除;其中最长的连续子数列有{7,3,4}和{5,14,9},起始位置最靠后的是{5,14,9}。
故符合要求的最长连续子数列长度为3,子数列为5 14 9。
输入描述
第一行输入两个整数n和k(1≤n≤105,2≤k≤108),整数之间以一个空格隔开;
第二行输入n个整数(1≤整数≤104),整数之间以一个空格隔开。
输出描述
如果存在符合要求的最长连续子数列,则输出为两行:
第一行输出一个整数,表示最长连续子数列的长度;
第二行输出若干个整数,表示起始位置最靠后的最长连续子数列,整数之间以一个空格隔开。
如果不存在,则输出-1。
输入样例
7 7 7 3 4 1 5 14 9
输出样例
3 5 14 9
某城市的道路构成了一个巨大的树形结构,每一条道路可视为该结构的一条边,而道路的交叉点或端点视为其中的一个节点。该城市共有n个节点,编号分别为1、2、3、..... n。
为了实时记录道路情况,需要在某些节点部署监控设备,当部署好后,与该节点直接相连的所有道路均能被监控到。为了优化资源分配,在保证整座城市的所有道路都被监控到的前提下,部署监控设备的费用要尽可能少。
给定每个节点部署监控设备的费用,请计算要使所有道路都能被监控到的最少花费是多少?
例如:n=8,表示有8个节点(即道路交叉点或端点),1到8号节点部署监控设备的费用分别为33、12、30、22、18、10、31、28。道路分布图如下:

根据观察可得,在2号和3号节点处部署监控设备,可以使所有道路都 能被监控到,并且花费最少,最少花费为42。
输入格式
第一行输入一个整数n (2≤n≤104),表示城市中节点(即道路交叉点或端点)的数量;
第二行输入n个整数(1<整数≤105) ,分别表示1号到n号节点部署监控设备的费用;
接下来n-1行,每行输入两个整数a, b,表示节点a和节点b之间有一条道路。
输出格式
输出一个整数,表示要使所有道路均能被监控到的最少花费。
输入样例
8 33 12 30 22 18 10 31 28 1 2 1 3 2 4 2 5 2 6 3 7 3 8
输出样例
42
定义 int a[5] ={1,2,3,4,5},*p=a+2;下列哪项与其他选项输出的结果不相同?
| A. cout << a[1]+2; |
B. cout << *(p++); |
| C. cout << p[1]; |
D. cout << *(a+3); |
有两排石头,每排n颗,从左到右依次排开,每颗石头的颜色为黄色或者绿色。每次可以选择第一排的任意一颗石头与第二排的任意一颗石头交换位置。请计算最少需要交换多少次才能使每一列石头的颜色都相同;如果无论交换多少次都无法使每一列石头的颜色都相同,则输出-1。
例如:n=3,每排3颗石头;第一排3颗石头的颜色从左到右依次是黄、绿、绿:

第二排3颗石头的颜色从左到右依次是绿、绿、黄:

其中一种最少交换次数的方案如下:
1) 先将第一排的第 3 颗石头与第二排的第 3 颗石头交换位置;

2) 再将第一排的第 3 颗石头与第二排的第1颗石头交换位置。

此时每一列石头的颜色都相同,故至少需要交换2次。
输入格式
本题每个测试点包含多组测试数据第一行包含一个整数 T(1≤T≤300),表示数据组数接下来T组数据,每组数据第一行输入一个整数n(1≤n≤104),表示每排石头的数量;
第二行输入 n个整数,整数只能为1或 0,1表示黄色,0 表示绿色,表示第一排从左到右每颗石头的颜色,整数之间以一个空格隔开;
第三行输入 n个整数,整数只能为1或0,1表示黄色,0表示绿色,表示第二排从左到右每颗石头的颜色,整数之间以一个空格隔开。
输入样例
2 3 1 0 0 0 0 1 5 1 0 1 0 1 0 1 0 1 0
输出样例
2 -1
