//洛谷能过
//5月3日再测又能过了
//bitset到底让不让用啊?
#include<bits/stdc++.h>
#include<bitset>
using namespace std;
bitset<99999999> v;
int f[10000005],prime[10000005],pn,n;
long long ans=1;
int main()
{
    cin>>n;
    for(int i=2;i<=n;i++)
    {
        if(!v[i])
        {
            prime[++pn]=i;
            f[pn]=i;
            ans=ans*prime[pn]%100000007;
        }
        for(int j=1;j<=pn&&prime[j]*i<=n;j++)
        {
            v[prime[j]*i]=1;
            if(i%prime[j]==0)
            {
                if(i==f[j])
                {
                    f[j]*=prime[j];
                    ans=ans*prime[j]%100000007;
                }
                break;
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

3 条评论

  • 我也有这个问题

  • 我感觉是这个"No space left on device",应该是空间太大了

    • @ 2024-05-02 11:03:08

      但是这代码能过,而且阴间的是比赛的时候过不了
      我寻思着100MB会爆

      #include<bits/stdc++.h>
      #include<bitset>
      using namespace std;
      bool v[100000005];
      int f[10000005],prime[10000005],pn,n;
      long long ans=1;
      int main()
      {
          cin>>n;
          for(int i=2;i<=n;i++)
          {
              if(!v[i])
              {
                  prime[++pn]=i;
                  f[pn]=i;
                  ans=ans*prime[pn]%100000007;
              }
              for(int j=1;j<=pn&&prime[j]*i<=n;j++)
              {
                  v[prime[j]*i]=1;
                  if(i%prime[j]==0)
                  {
                      if(i==f[j])
                      {
                          f[j]*=prime[j];
                          ans=ans*prime[j]%100000007;
                      }
                      break;
                  }
              }
          }
          cout<<ans<<endl;
          return 0;
      }
      
  • /tmp/ccTEyDJ3.s: Assembler messages:
    /tmp/ccTEyDJ3.s: Fatal error: cannot fill 256 bytes in section .data of /tmp/ccO9x18s.o because: 'No space left on device'

  • 1

信息

ID
2679
难度
8
分类
(无)
标签
递交数
58
已通过
6
通过率
10%
上传者