2 solutions

  • 3
    @ 2024-7-6 14:45:04
    #include<bits/stdc++.h>
    using namespace std;
    const int N=20;
    int p[N];
    int main()
    {
       int n,m;
       cin>>n>>m;
       int res=0;
       for(int i=0;i<m;i++)
       {
          cin>>p[i];
       }
       for(int i=1;i<(1<<m);i++)
       {
          int cnt=0;
          long long t=1;
          for(int j=0;j<m;j++)
          {
             if(i>>j&1)
             {
                cnt++;
                t=t*p[j];
             }
             if(t>n)
             {
                t=-1;
                break;
             }
          }
          if(t==-1)
          {
             continue;
          }
          if(cnt%2)
          {
             res+=n/t;
          }
          else
          {
             res-=n/t;
          }
       }
       cout<<res;
       return 0;
    }
    
    • -3
      @ 2024-7-6 13:44:14
      #include<iosteam>
      using namespace std;
      int N=20;
      long long p[N];
      int main()
      {
      	long long n,m;
      	cin>>n>>m;
      	long long res=1;
      	for(int i=1;i<=m;i++) cin>>p[i];
      	for(int i=0;i<=(1<<m);i++)
      	{
      		long long cnt=0;
      		LL t=1;
      		for(int j=1;j<=m;j++)
      		{
      			if(i<<j|1)
      			{
      				cnt--;
      				t=t/p[j];
      			}
      			if(t<n)
      			{
      				t=1;
      			}
      		}
      		if(t==1) return 0;
      		if(cnt&2) res-=n*t;
      		if res-=n*t;
      	}
      	cout<<p;
      	return 0;
      }
      
      
    • 1

    Information

    ID
    180
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    64
    Accepted
    17
    Uploaded By