74 date:2021.3.2
要点:
判断素数
详细代码如下:
#include <stdio.h>
#include <math.h>
double fun(int n)
{
/*
analyse:
判断素数;
求平方根;
*/
/*
idea1: 所谓素数是指除了1和它本身以外,不能被任何整数整除的数
判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除
如果都不能被整除,那么m就是一个素数
*/
int i,j;
double sum=0.0;
for(i = 3; i <=n; i++)
{
// ERROR: if((i%1==0) && (i%i==0))
for(j = 2; j < i; j++)
{
if(i%j == 0)
break;
}
if(j >= i)
sum += sqrt((double)i);
}
return sum;
/*
idea2: 另外判断方法还可以简化。m不必被2~m-1之间的每一个整数去除,只需
被2~√m之间的每一个整数去除就可以了
*/
int m, k ,i;
double s = 0.0;
for(m = 3; m <=n; m++)
{
k = sqrt(m);
for(i = 2; i <= k; i++)
{
if(m % i == 0)
break;
}
if(i >= k+1)
s += sqrt(m);
}
return s;
}
void main()
{
int n;
double sum;
FILE *out;
printf("Input N=");
scanf("%d",&n);
sum=fun(n);
printf("\n\nsum=%f\n\n",sum);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%f\n",fun(180));
fclose(out);
/******************************/
}