素数求和

简介: 这是刚开始写的代码,有点长。

200万以内素数求和

这是刚开始写的代码,有点长。

#include <stdio.h>
#include <math.h>
/*
200万以内素数求和
*/ 
int main()
{
  int i;
  long long int p=0;
  int n,num,s,tmp=0;
  scanf ("%d",&n);  
  for (num=0;num<=n;num++)
{
  if(num ==2|| num==3 )//对2||3特殊处理 
  {
  p+=num;
  continue;}
{
    if(num %6!= 1&&num %6!= 5)//如果是素数,必然在6的旁边 
    continue;
    tmp=sqrt( num);
    for(i=2;i <=tmp; i++ )//在6的旁边也不一定是素数,再次进行判断 
    {s=0;
  if(num %i== 0)
    {
    s=1;
    break;
  }
  }
    if (s==0) //实现累加 
    p+=num;
} 
}
printf ("%lld",p);
return 0;
}

最后看到了网上一个代码,效率极高

然后敲了一遍

#include <stdio.h>
/*
  2000万内素数求和
*/ 
int a[20000001]={0};//定义一个20000001的容器 
int main()
{
  int i,j,n;
  long long p=0;
  scanf ("%d",&n);
  for (i=2;i*i<=n;i++)//从2开始,对其倍数标记 
  {
  if (a[i]==1) 
  continue;
  for (j=i*i;j<=n;j+=i)//进行标记
  a[j]=1;
  }
  for (i=2;i<=n;i++) 
  if (a[i]==0)//未标记的即为素数 
  p+=i;
  printf ("%lld",p);
  return 0;
}
目录
相关文章
|
24天前
素数
【10月更文挑战第23天】素数。
30 5
|
6月前
|
存储 弹性计算 运维
对100 以内的所有正整数相加求和
【4月更文挑战第29天】
75 2
wustojc5004素数
wustojc5004素数
50 0
wustojc3010快速求和
wustojc3010快速求和
58 0
输出100以内的素数(质数)
输出100以内的素数(质数)
182 0
|
人工智能 算法 BI
【欧拉计划第 2 题】 偶数斐波那契数 Even Fibonacci numbers
【欧拉计划第 2 题】 偶数斐波那契数 Even Fibonacci numbers
160 0
【欧拉计划第 2 题】 偶数斐波那契数 Even Fibonacci numbers
1005: 求和
给出一串的数,请计算它们的和。输入只有一行,包含若干个数,数之间用空格隔开。数字和答案保证在int范围内。求这些数的和。