#include<iostream> using namespace std; //筛法求素数 const int Max=65536; int a[Max]={0}; int list[65536]={0}; int nums=0; void qiusushu(){ for(int i=2;i<Max;i++){ if(list[i]==0){ a[nums]=i; nums++; //将该素数的所有倍数全部置为合数 for(int j=2;j*i<65536;j++){ list[j*i]=1; } } else continue; } } int main(){ qiusushu(); int x,y; while(scanf("%d %d",&x,&y)!=EOF){ if(x>y){ int temp=0; temp=x; x=y; y=temp; } int sum=0; for(int i=0;i<nums;i++){ if(a[i]>x&&a[i]<y){ sum+=a[i]; } } cout<<sum<<endl; } } |
Double click to view unformatted code.