c++实现。先初步判断是不是能够被2,或者5整除,如果是的话那么不是素数。获得该数的位数向上取整的最大数A,如:假如该数是78377393787372,那么A= 9999999(理论上讲应该是该数的平方根,但是由于数超大,很难求出平方根,就用A取代),再取t,使得2<=t<=A,让t每次自加加一次,如果结果等于该数,则可知t能被该数整除,则该数不是素数,如果结果大于该数,则取下一个t,既t++;,如果结果小于该数,则继续让t自加加。
2020-01-03 11:33:30 4KB 素数,超长
1
约瑟夫环2、 约瑟夫(Josephus)环问题:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,直到所有人全部出列为止。 建立n个人的单循环链表存储结构,运行结束后,输出依次出队的人的序号。
2019-12-21 21:35:56 2KB 约瑟夫环
1
任意正整数都能拆成若干唯一的2的幂指数之和,php版本和js版本都有。
2019-12-21 20:39:56 849B php js 数字拆分
1
子集和问题 Description 子集和问题的一个实例为〈S,t〉。其中,S={x1,x2,...,xn}是一个正整数的集合,c 是一个正整数。子集和问题判定是否存在S的一个子集S1,使得x∈S1,∑x=c. 试设计一个解子集和问题的回溯法。 «编程任务: 对于给定的正整数的集合S={x1,x2,...,xn}和正整数c,编程计算S 的一个子集 S1,使得x∈S1,∑x=c. Input 由文件input.txt 提供输入数据。文件第1 行有2 个正整数n 和c,n 表示S 的大小,c 是子集和的目标值。接下来的1 行中,有n 个正整数,表示集合S 中的元素。 Output 程序运行结束时,将子集和问题的解输出到文件output.txt中。 当问题无解时,输出“No Solution!”。 Sample Input 5 10 2 2 6 5 4 Sample Output 2 2 6
2019-12-21 20:29:21 3KB 子集和问题
1
// 给定一个正整数N, 其中 // N = A1 + A2 + ... + An 其中A1, A2, ..., An为斐波那契数列不重复的正整数 (不会有 2个1 这种结果) // 请实现下面的function (function格式请勿修改) // 其中输入参数为N, 返回值为A1, A2, ..., An.的递减数组 // 若找不到结果则返回空数组 // 斐波那契数列定义如下: // F1 = 1 // F2 = 1 // Fn = Fn-1 + Fn-2 // -> 斐波那契数列的值为: 1, 1, 2, 3, 5, 8, 13, 21, 34, .... // Ex input 11 -> output [8, 3] // Ex input 31 -> output [21, 8, 2]
2019-12-21 20:23:27 2KB 斐波那契数列 正整数分解 算法
1
编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,有用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在其后。 3.程序执行的命令包括: 1)输入初始密码和人数 2)输入所有人的密码 3)显示输入的所有人的编号及相应的密码 4)输出出列密码及编号 5)结束 4.测试数据 (1)m=20, n=7, 7个人的密码依次为3,1,7,2,4,8,4 (2)m=20,n=1 (3)m=20,n=0 前面一组为常规数据,后面两组为边缘数据
2019-12-21 19:43:16 81KB 数据结构
1