方法一:


#include<stdio.h>

#include<math.h>

double fun(int m)

{

    int n,i,k;

    double s =0.0;

    for(n=3;n<=m;n++)

    {

      k = sqrt(n);

      for(i=2;i<=k;i++)

      if(n%i==0) break;    //如果n为合数,结束这一层for循环

      if(i>=k+1) s += sqrt(n);  //i一直不能被n除尽,则n为素数

    }

    return s;

}


void main()

{


    int m;

    double s;

    FILE *out;

    printf("\n\nInput m :");

    scanf("%d",&m);

    s = fun(m);

    printf("\n\ns=%f\n\n",s);


}

方法二:


#include<stdio.h>

#include<math.h>

double fun(int m)

{

    /*

    int n,i,k;

    double s =0.0;

    for(n=3;n<=m;n++)

    {

      k = sqrt(n);

      for(i=2;i<=k;i++)

      if(n%i==0) break;

      if(i>=k+1) s += sqrt(n);

    }

    */


    int i,j;

    double s = 0.0;

    for(i=3;i<=m;i++)

    {

        for(j=2;j<i;j++)

        {

           if(i%j == 0) break;

        }

        if(j >= i)

         s = s + sqrt(i);

    }


    return s;

}


void main()

{


    int m;

    double s;

    FILE *out;

    printf("\n\nInput m :");

    scanf("%d",&m);

    s = fun(m);

    printf("\n\ns=%f\n\n",s);


}