这是一个判断两个大于0且不等的数a,b间素数个数(包括a,b)的程序
我在一个判断网站判断的结果是程序时间消耗过大
帮忙看看:
思想是sushu(int a)是一个素数判断程序
特点:它只对奇数判断有效果 是素数flag=0,否则flag=1;
而且1 flag=0;
sushuab(int a,intb)是解决本题的函数,a=1时:1代替2作为素数所以总素数的个数不变,不对偶
数进行判断。a=2时: 判断的结果+1。a>2时 没有影响。
#include <iostream.h> #include <math.h> int sushu(int a) { int k,n,flag; flag=0; n=int(sqrt(a)); for(k=3;k<=n;k=k+2) { if(a%k==0) { flag=1; break; } } return flag; }
void sushuab(int a,int b) { int i; int j=0; int c; c=(int)(a/2)*2+1; for(i=c;i<=b;i=i+2) { if(sushu(i)==0) j++; } if(a==2) j=j+1; cout<<j<<endl; } int main() { int a,b; do{ cin>>a>>b; sushuab(a,b); }while(1); return 0; }
[此贴子已经被作者于2004-10-09 10:49:36编辑过]