https://ac.nowcoder.com/acm/contest/1221/A
很简单,筛一下即可
#include<stdio.h>
#include<math.h>
int a[30000005];
typedef long long ll;
int main()
{
ll n;
scanf("%lld",&n);
ll x,i,j;
ll k=sqrt(n);
ll sum=0;
for(i=2; i<=n; i++)
{
if(!a[i])
{
sum+=i;
for(j=i*i; j<=n; j+=i)
{
if(!a[j])
a[j]=1,sum+=i;
}
}
}
printf("%lld\n",sum);
return 0;
}
本文深入探讨了素数筛算法的实现,通过C语言代码详细解释了如何高效地找出一定范围内的所有素数,并计算其总和。算法利用了埃拉托斯特尼筛法原理,通过对数组的标记和迭代,避免了重复的除法操作,大大提高了计算效率。
1127

被折叠的 条评论
为什么被折叠?



