1 条题解

  • 0
    @ 2025-2-21 20:03:46

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    long long n,s,m,t,a[5000005];
    int main()
    {
        cin>>n;a[1]=1;
        for(int i=2;i*i<=n;i++)
            if(a[i]==0)
              for(int j=2*i;j<=n;j+=i)
                  a[j]++;
        for(int i=1;i<=n;i++)
        { 
        	m=sqrt(i);
        	if(a[i]==0)t+=i;
        	else 
        	{
        	   for(int j=2;j<=m;j++)
        	   if(i%j==0)
    		   {
    			  t+=j;
    			  break;
    		   }
    	    }
    	}
    	cout<<t;
        return 0;
    }
    

    Pascal :

    const
      maxn=2000000;
      inf='common.in';
      ouf='common.out';
    var
      a:array[0..maxn+1] of longint;
      i,j,s,k,n,m:longint;
      ans:int64;
    begin
    {assign(input,inf);
      assign(output,ouf);
      reset(input);
     rewrite(output);}
      readln(n);
      k:=2;
      s:=0;
      while k<=n do
        begin
          s:=k;
          while s<=n do
            begin
              if a[s]=0
                then begin
                       a[s]:=k;
                       ans:=ans+k;
                     end;
              s:=s+k;
            end;
          while a[k]<>0 do k:=k+1;
        end;
      writeln(ans);
    {close(input);
     close(output);}
    end.
    
    
    • 1

    信息

    ID
    1011
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者