注:这篇文章的文字大部分是没有用的,只需要认真解读代码就可以了(当然有些文字还是有用的)。
一、有关素数的一些问题(没用)
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。根据算数基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。目前为止,人们未找到一个公式可求出所有质数。2016年1月,发现世界上迄今为止最大的质数,长达2233万位,如果用普通字号将它打印出来长度将超过65公里。
二、c++中对于素数的使用(有点小用,但基本还是没用的)
1.判断一个数是否是素数(超级简单,不做过多解释)
#include<bits/stdc++.h> #include<windows.h> using namespace std; bool s(int n) { for(int i=2;i<=sqrt(n);++i) { if(n%i==0) { cout<<"这个数不是素数"<<endl; return false; } } return true; } int main() { int n; system("color 2"); cout<<"这";Sleep(200);cout<<"是";Sleep(200);cout<<"判";Sleep(200);cout<<"断";Sleep(200);cout<<"一";Sleep(200); cout<<"个";Sleep(200);cout<<"数";Sleep(200);cout<<"是";Sleep(200);cout<<"否";Sleep(200);cout<<"是";Sleep(200); cout<<"素";Sleep(200);cout<<"数";Sleep(200);cout<<"的";Sleep(200);cout<<"程";Sleep(200);cout<<"序"<<endl;Sleep(200); system("color 3"); cout<<"请输入一个数:"; cin>>n; if(s(n)) cout<<"这个数是素数"<<endl; return 0; }
Sleep的使用纯粹是在颓。
2.判断在1-n的范围内,素数的个数(或输出所有的素数)
#include<bits/stdc++.h> using namespace std; bool s(int i) { for(int j=2;j<=sqrt(i);++j) { if(i%j==0) { return false; } } return true; } int main() { int n,sum=0; cin>>n; for(int i=2;i<=n;++i) //{ if(s(i)) //sum+=1; //} cout<<i/*sum*/<<endl; return 0; }
算了,没有什么好写上了,先到这吧