一些有关素数的问题

注:这篇文章的文字大部分是没有用的,只需要认真解读代码就可以了(当然有些文字还是有用的)。

一、有关素数的一些问题(没用)

质数(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;
}

算了,没有什么好写上了,先到这吧

猜你喜欢

转载自www.cnblogs.com/Michael666/p/10803078.html