理解
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
应用
质数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。
在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。
在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的质数次数的使用也得到了证明。实验表明,质数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。
以质数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。
多数生物的生命周期也是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。
代码
基本判断思路
在一般领域,对正整数n,如果用2到n之间的所有整数去除,均无法整除,则n为质数。
上代码
C/C++代码:
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const long long size=100000;//修改size的数值以改变最终输出的大小
long long zhishu[size/2];
void work (){//主要程序
zhishu[1]=2;
long long k=2;
for(long long i=3;i<=size;i++){//枚举每个数
bool ok=1;
for(long long j=1;j<k;j++){//枚举已经得到的质数
if(i%zhishu[j]==0){
ok=!ok;
break;
}
}
if(ok){
zhishu[k]=i;
cout<<"count"<<k<<' '<<i<<endl;
k++;
}
}
}
int main(){
freopen("zhishu.out","w",stdout);
cout<<"count1 2"<<endl;
work();
return 0;
}
Python 代码:
from math import sqrt
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return Flase
return True
如果有错误,欢迎评论!!!