Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define N 10001
- using namespace std;
- int a[N],prim[N];
- int main()
- {
- prim[0]=prim[1]=1;
- for(int i=2;i*i<=N;++i)
- if(prim[i]==0)
- for(int j=2;i*j<=N;++j)
- prim[i*j]=1;
- int n,c,x;
- ifstream f("numere.in");
- f>>n>>c;
- for(int i=1;i<=n;++i)
- {
- f>>x;
- if(prim[x]==0)
- {
- a[i]=x;
- continue;
- }
- int d=2;
- if(x%d==0)
- {
- if(prim[x/d]==0)
- {
- a[i]=x/d;
- continue;
- }
- while(x%d==0)
- x/=d;
- if(x==1)
- a[i]=d;
- }
- bool ok=false;
- for(d=3;d*d<x;d+=2)
- {
- if(x%d==0)
- {
- if(prim[x/d]==0)
- {
- a[i]=x/d;
- ok=true;
- break;
- }
- while(x%d==0)
- x/=d;
- if(x==1)
- {
- a[i]=d;
- ok=true;
- break;
- }
- }
- if(ok)
- continue;
- }
- if(prim[x]==0)
- {
- a[i]=x;
- continue;
- }
- if(d*d==x&&prim[d]==0)
- {
- a[i]=d;
- continue;
- }
- }
- int nr=0,smax=0;
- for(int i=1;i<n;++i)
- for(int j=i+1;j<=n;++j)
- if(a[i]==a[j])
- {
- ++nr;
- if(j-i+1>smax)
- smax=j-i+1;
- }
- ofstream g("numere.out");
- if(c==1)
- g<<smax<<'\n';
- else
- g<<nr<<'\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement