摘要:
求[l, r]这段区间中有多少素数 1 ≤ l ≤ r ≤ 10 ^6 一个显然的想法是利用for循环枚举[l, r]中的每一个数。然后利用朴素算法O(√X)进行判断。 整体复杂度O(N√N),不符合要求 仍然考虑枚举判断每个数是否是素数,但我们这次从2开始判断。 考虑对于任意一个数x,不论x是否为 阅读全文
摘要:
1.对于判断一个数n是否为素数,最朴素的方法是按素数的定义,试除以从2开始到m-1的整数,如果无一例外地不能整除,则该数一定是素数。 质数(prime number)又称素数,有无限个。 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 2.想一想 阅读全文
摘要:
当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 使用freopen函数可以解决测 阅读全文
摘要:
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。 运算说明 1. and运算 & and运算通常用于二进制的取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示 阅读全文
摘要:
十进制与二进制之间的转换: (1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。 9(十进制)→1001(二进制) (2)二进制转十进制的转换原理: 就是用进制的定义:二进制的每一个乘以2的n次方,n从0开始,每次递增1。然后得出来的每个数相加。 1110(二进制)→ 14(十进制) 阅读全文