编写程序,求100-999之间所有素数的平均值(输出两位小数)两种方法

编写程序,求100-999之间所有素数的平均值(输出两位小数)

1.思路

  • 素数:只能被1和它本身整除的数
  • 外循环遍历100-999,内循环判断是否为素数

2.代码实现

第一种方法
int main(){
     int i,j,sum=0,count=0;
     for(i=101;i<=999;i+=2){    //所有偶数都不是素数
        for(j=2;j<i;j++)   //因数,比如 8的因子是1*8;2*4;
           if(i%j==0)         //除1和它本身之外最大的因子是他的
              break;         //判断能否整除,能就不是素数,跳出循环
        if(j==i){      //当判断运行完以后,j++,这时j==i;
           count++;       //这样当j==i,i%j!=0,j++,这时j就会大于i/2;
           sum=sum+i;
        }
     }
     printf("%.2f",(float)sum/count);//平均数保留两位小数,强制转化float类型;也可直接定义sum为float类型
}
第二种方法(函数调用)
int main(){
 int i,j,n,sum=0,count=0;
     for(i=100;i<=999;i++)
     if(f(i)){     //调用f函数判断是否是素数,是返回1,否返回0
        sum+=i;     //0为假非0为真
        count++;
     }
     printf("%.2f",(float)sum/count);
}
int f(int a){
     int i;
     for(i=2;i<a;i++){
        if(a%i==0)
            return 0;
     }
     return 1;
}

猜你喜欢

转载自blog.csdn.net/qq_20185737/article/details/104134013