质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
判断一个数是不是素数,程序代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int isPrime(int num)
{
if(num <= 1)
return 0;
//for(int i = 2; i <= num-1; i++) //从2到num-1整除num,能被整除则不是素数
//for(int i = 2; i <= num/2; i++) //从2到num/2整除num,能被整除则不是素数
for(int i = 2; i <= sqrt(num*1.0); i++) //从2到num-1整除num,能被整除则不是素数
{
if(num % i == 0)
return 0;
}
return 1;
}
int main()
{
int num;
cout<<"\n请输入一个数:"<<endl;
cin>>num;
if(isPrime(num))
cout<<"是素数"<<endl;
else
cout<<"不是素数"<<endl;
system("pause");
}
求m和n中间一共有多少个素数,并输出。程序代码如下:
#include<iostream>
#include<cmath>
using namespace std;
int isPrime(int num)
{
if(num <= 1)
return 0;
//for(int i = 2; i <= num-1; i++) //从2到num-1整除num,能被整除则不是素数
//for(int i = 2; i <= num/2; i++) //从2到num/2整除num,能被整除则不是素数
for(int i = 2; i <= sqrt(num*1.0); i++) //从2到num-1整除num,能被整除则不是素数
{
if(num % i == 0)
return 0;
}
return 1;
}
int main()
{
int m,n,a[100],j=0;
cout<<"\n请输入m和n:"<<endl;
cin>>m>>n;
for(int i=m; i<=n; i++)
{
if(isPrime(i))
a[j++] = i;
}
cout<<"一共有"<<j<<"个素数"<<endl;
cout<<"分别为:"<<endl;
for(int k=0;k<j;k++)
{
cout<<a[k]<<" ";
}
system("pause");
}