Informatică, întrebare adresată de eugoaga, 8 ani în urmă

sa se determine prima/ultima poziție a unui număr prim/perfect/palindrom din vector

Răspunsuri la întrebare

Răspuns de arkavas
0
#include <iostream>
using namespace std;
int main(){    int n,i,a[101];    cin>>n;    for(i=1; i<=n; i++)    {        cin>>a[i];    }    // numar prim    int d,ok=1,ppoz=0,upoz=0;    for(i=1; (i<=n) && (ppoz==0); i++)    {        ok=1;        for(d=2; (d*d<=a[i]) && (ok==1); d++)            if(a[i]%d==0) ok=0;        if(ok==1) ppoz=i;    }    for(i=n; (i>=ppoz)&&(upoz==0); i--)    {        ok=1;        for(d=2; (d*d<=a[i])&&(ok==1); d++)            if(a[i]%d==0) ok=0;        if(ok==1) upoz=i;    }    cout <<ppoz<<" "<<upoz<< endl;
    // numar perfect    int s,perfect_ppoz=0, perfect_upoz=0;    for(i=1; (i<=n) && (perfect_ppoz==0); i++)    {        s=1;        for(d=2; d<=a[i]/2; d++)            if(a[i]%d==0) s=s+d;        if(a[i]==s) perfect_ppoz=i;    }    for(i=n; (i>= perfect_ppoz)&&(perfect_upoz==0); i--)    {        s=1;        for(d=2; d<=a[i]/2; d++)            if(a[i]%d==0) s=s+d;        if(a[i]==s) perfect_upoz=i;    }    cout <<perfect_ppoz<<" "<<perfect_upoz<< endl;
    // palindrom    int pp=0,up=0,copie, inv;    for(i=1; (i<=n) && (pp==0); i++)    {        copie=a[i];        inv=0;        while(copie>0)        {            inv=copie%10+inv*10;            copie=copie/10;        }        if(a[i]==inv) pp=i;    }    for(i=n; (i>= pp)&&(up==0); i--)    {        copie=a[i];        inv=0;        while(copie>0)        {            inv=copie%10+inv*10;            copie=copie/10;        }        if(a[i]==inv) up=i;    }     cout <<pp<<" "<<up<< endl;    return 0;}
Alte întrebări interesante