C语言 素数平方之和
方法一:
#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);
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。