/*---------------------------------------------------
费马小定理:如果n是一个素数,a是小于n的任意正整数,那么a的n次方与a模n同余。
(俩个数称为模n同余,如果它们除以n的余数相同。数a除以n的余数称为a取模n的余数,或简称为a取模n)
condition:
n is a prime
a < n
result:
a^n%n == a%n
---------------------------------------------------*/
int square(int n)
{
return n*n;
}
/*---------------------------------------------------
计算一个数的幂对另一个数取模的结果,
确定是否素数所需的步数将具有θ(log n)的增长阶
---------------------------------------------------*/
int expmod(int base, int exp, int m)
{
if (0 == base)
{
return 1;
}
else if (0 == exp%2) /*exp is even*/
{
return square( expmod(base, exp/2, m) ) % m;
}
else
{
return (base * expmod(base, exp-1, m)) %m;
}
}
/*---------------------------------------------------
执行费马检查需要选取位于1和n-1之间(包含这两者)的数a,而后检查a的n次幂取模n的余数是否等于a.
---------------------------------------------------*/
bool fermat_test(int n)
{
int a = rand() % n; /*a random int, less than n*/
if( a == expmod(a, n, n) )
{
return TRUE;
}
else
{
return FALSE;
}
}
bool fermat_prime(int n, int times)
{
if (0 == times)
{
return TRUE;
}
else if( fermat_test(n) )
{
return fermat_prime(n, times-1);
}
else
{
return FALSE;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
bool b = is_prime(17);
b = is_prime(88);
b = fermat_prime(31, 5);
return 0;
}
Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。 我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...
利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...
题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...
题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / 2 6 / 1 3示例 1: 输入: [1,6,3,2,5] 输出...
/*判断屏幕宽高比是否为16:9*/ function isScreen16to9() {return window.screen.height / window.screen.width === 9 / 16; }...
/*关闭、刷新、跳转、离开当前网页前提示*/ onbeforeunload = function () {return false; }; ...
let json = {/**判断JSON格式*/ isJSON: function (str) {if (typeof str == "string") {try {var obj = JSON.parse(str);if (typeof obj == "object" && obj) {return true;} else {...
项目结构 index.js //必须要安装否则就别想运行了❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ //npm i body-parser -D & cnpm i express & cnpm i node-xlsx & cnp...
一、递归 函数 为什么要有函数,提高代码的可读性,避免重复的代码,提高代码的复用性 在函数中能用return的不要print 1、递归的最大深度997 def foo(n):print(n)n+=1foo(n) foo(1) 递归的最大深度 2、修改递归的最大深度 由此我们可以看出,未报错之前能看到的最大数...
欧拉筛又称线性筛,可以在线性的时间内筛出素数,因此在时间上要优于埃拉托斯特尼筛法。 欧拉筛是怎么做到在线性的时间内筛素数呢?先看代码。 1 int n,vis[maxn],prime[maxn],cnt; 2 for(int i=2;i<=n;++i) { 3 if(!vis[i]) prime[++cnt]...