素数和合数
#一日一词#
素数,又叫质数,为在大于1的自然数中,除了1和它本身以外不再有其他因数的数。比如2、5、13。
合数,就是出素数以外的数,是除1和本身外还有其他因数的数。
作用?
作用大些的是素数,因为它很难找(指足够大的素数)。所以经常用在加密解密算法里,比如RSA算法。总之找一个足够大的素数和判断一个足够大的数是否为素数,都十分难,因此大素数在加密算法中作为一个因子也是比较靠谱的。
这儿有个求N以内的素数的代码:
num = 0;
for(i=2; i<=n; i++)
{ for(j=2; j<=sqrt(i); j++)
if( j%i==0 ) break;
if( j>sqrt(i) ) prime[num++] = i; //这个prime[]是int型,跟下面讲的不同。
}
和暴力枚举相似,将小于n的素数保存到数组prime中。当n足够大时,就不适用了。