2 条题解

  • 0
    @ 2025-10-8 16:56:08
    #include<bits/stdc++.h>
    using namespace std;
    int prime[1110000],pr;bool v[1110000];
    int main()
    {
    	int n;scanf("%d",&n);
    	memset(v,0,sizeof(v));
    	for(int i=2;i<=n;i++)
    	{
    		if(v[i]==0)
    		{
    			prime[++pr]=i;
    			int x=n,s=0;
    			while(x)
    			{
    				x=x/i;
    				s+=x;
    			}
    			printf("%d %d\n",i,s);
    		}
    		for(int j=1;j<=pr && i*prime[j]<=n;j++)
    		{
    			v[i*prime[j]]=1;
    			if( i% prime[j]==0) break;
    		}
    	}
    	return 0;
    }
    
    • 0
      @ 2025-10-8 16:56:02
      #include<bits/stdc++.h>
      using namespace std;
      int prime[1110000],pr;bool v[1110000];
      int main()
      {
      	int n;scanf("%d",&n);
      	memset(v,0,sizeof(v));
      	for(int i=2;i<=n;i++)
      	{
      		if(v[i]==0)
      		{
      			prime[++pr]=i;
      			int x=n,s=0;
      			while(x)
      			{
      				x=x/i;
      				s+=x;
      			}
      			printf("%d %d\n",i,s);
      		}
      		for(int j=1;j<=pr && i*prime[j]<=n;j++)
      		{
      			v[i*prime[j]]=1;
      			if( i% prime[j]==0) break;
      		}
      	}
      	return 0;
      }
      • 1

      信息

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