c++求任意两个数之间的所有素数
3个回答
展开全部
【解题思路】
本题的重点在如何判断一个数是否素数。判断素数的唯一标准就是能不能被除了1和本身之外的其它数整除,可以通过循环来判断,比如要判断27是否素数,可以用一个循环,从2开始到26逐个检测,看27能否被其中某个数整除,如果能就不是素数,否则就是素数。判断一个数是否被另一个数整除可以用取余运算符%,比如:a%b==0(就是a除以b的余数等于0),就可以判定a可以被b整除。针对本题,为了使代码更简洁,可以专门写个判断一个数是否素数的函数,然后在主函数中调用就可以很容易实现求任意两个数之间的所有素数的要求。具体代码如下:
【程序代码】
#include <iostream> //控制台操作头文件
#include <math.h> //数学函数头文件
int SS(int a) //质数判断函数(质数返回1,否则0)
{if(a<2) return 0; //小于2的数都不是质数,返回0
if(a==2) return 1; //2是特殊的质数
int i,n=(int)sqrt(a); //n是除数,开方可以减少检测个数
for(i=2;i<=n;i++) //逐个检测能不能被整除
if(a%i==0) return 0; //如果能被整除说明不是质数, 返回0;
return 1;} //检测完了还没可以被整除的数,返回1
int main() //主函数
{int i,a,b; //循环变量和任意两个数
printf("请输入起点:"); //显示提示信息
scanf("%d",&a); //输入起点数值
printf("请输入终点:"); //显示提示信息
scanf("%d",&b); //输入终点数值
printf("%d-%d之间的素质有:",a,b); //显示提示信息
for(i=a;i<=b;i++) //用循环逐个找出[a-b]之间的素数
if(SS(i)) printf("%d ",i);//如果是素数则输出
printf("\n"); //换行
system("PAUSE"); //屏幕暂停,以便看到显示结果
return 0;} //结束程序
【运行结果】
本程序在 DEV C++上运行通过,截图如下:
2013-05-09
展开全部
#include <iostream>
using namespace std;bool isPrime(int num){
for (int i=2; i<num; i++){
if (num%i == 0){
return false;
}
}
return true;
}int main(){
int counter = 0;int a,b;cin>>a>>b;
cout<<"素数为:"<<endl;
for (int i=a; i<=b; i++){
if (isPrime(i)){
cout<<i<<" ";
counter++;
}
}
cout<<endl<<"共"<<counter<<"个"<<endl;
return 0;
}
using namespace std;bool isPrime(int num){
for (int i=2; i<num; i++){
if (num%i == 0){
return false;
}
}
return true;
}int main(){
int counter = 0;int a,b;cin>>a>>b;
cout<<"素数为:"<<endl;
for (int i=a; i<=b; i++){
if (isPrime(i)){
cout<<i<<" ";
counter++;
}
}
cout<<endl<<"共"<<counter<<"个"<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-09
展开全部
我的程序源代码截图如下:结果截屏如下;(两个整数是我随便输入的,你也可以改动)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询