Sunteți pe pagina 1din 13

Miclea Emanuel

Fisa cu aplicatii din structuri repetitive

1. Sa se afiseze suma numerelor naturale divizibile cu 3 mai mici sau egale cu o valoare data n. Ex. n=20 => s=63 #include <iostream>

using namespace std; int main() { int i,n,S; cout<<"n="; cin>>n; S=0; for(i=0;i<=n;i++) { if(i%3==0) S=S+i; } cout<<"S="<<S;

return 0; }

2.Sa se determine toate numerele de forma abcd divizibile cu un numar n dat. Cifrele vor fi distincte doua cate doua. Ex. n=973 => 1946, 3892, 4865, 9730

#include <iostream> using namespace std; int main() { int n,s,u,z,x,m,c=0; do { cout<<"n="; cin>>n; u=n%10; z=n/10%10; s=n/100; } while(n<=100 || n>=1000 || u==s || u==z || z==s); x=n; while(n<10000 && c==0) { n=x+n; u=n%10; z=n/10%10; s=n/100%10; m=n/1000; if(n+x>=10000) c=1; if(m==0) if(u!=z && u!=s && z!=s) cout<<n<<" "; else {;} else if(u!=z && u!=s && z!=s && m!=z && m!=s && m!=u) cout<<n<<" "; } return 0; }

3. S se afle ci divizori are x #include <iostream> using namespace std; int main() { int x,i,numarul; cout<<"x="<<" "; cin>>x; numarul=0; for(i=1;i<=x;i++) { if(x%i==0) numarul=numarul+1; } cout<<"numarul divizorilor ="<<numarul; } return 0; } 4. S se calculeze suma divizorilor lui x #include <iostream> using namespace std; int main() { int x,i,S; cout<<"x="<<" "; cin>>x; for(i=i;i=x;i++) { if(x%i==0) S=S+i; } cout<<"S="<<S; return 0; }

5.S se afle cel mai mic divizor al lui x (diferit de 1) #include <iostream> using namespace std; int main() { unsigned x,c,d,prim; cout<<"x="; cin>>x; prim=1; d=2; c=x%10; while (d<=x/2) {if (x%d==0) prim=0; d=d+1; } if (prim==1) cout<<"cel mai mic divizor al lui x este"<<" "<<x; if(c==0) cout<<"cel mai mic divizor al lui x este"<<" "<<2; else cout<<"cel mai mic divizor al lui x este"<<" "<<3; return 0; }

6. S se afle cel mai mare divizor al lui x (diferit de el nsui) #include <iostream> using namespace std; int main() { unsigned x,c,d,prim; cout<<"x="; cin>>x; prim=1; d=2; c=x%10; while (d<=x/2) {if (x%d==0) prim=0; d=d+1; } if (prim==1) cout<<"cel mai mare divizor al lui x este"<<" "<<x; if(c==0) cout<<"cel mai mare divizor al lui x este"<<" "<<x/2; else cout<<"cel mai mare divizor al lui x este"<<" "<<x/3; return 0; }

9. S se afieze dac a i b sunt prime ntre ele #include <iostream> using namespace std; int main() { int a,b,copie; cout<<"a="; cin>>a; cout<<"b="; cin>>b; if(a!=0,1&&b!=0,1) { if(a>b) { copie=a; a=b; b=copie; } } if(b%a!=0) cout<<"a si b sunt prime intre ele"; else cout<<"a si b nu sunt prime intre ele"; return 0; }

10. S se afle cmmmc a dou numere a i b S se afle cmmmc a dou numere a i b #include<iostream> using namespace std; int main() { int a,b,r,cmmmc,copiea,copieb; cout<<"a="; cin>>a; cout<<"b="; cin>>b; copiea=a;copieb=b; r=a % b; while(r!=0) { a=b; b=r; r=a % b; } cout<<b;//cmmdc cmmmc=(copiea*copieb)/b; cout<<"cmmmc="<<cmmmc; return 0; }

11.S se calculeze ci factori primi are x / suma factorilor primi

#include<iostream> using namespace std; int main() { int x,d=2,p,S,nr; cout<<"x=";cin>>x; S=0; nr=0; while(x>1) { p=0; while(x%d==0) { p=p+1; x=x/d; } if(p) cout<<d<<" la puterea "<<p<<endl; S=S+d; d=d+1; nr=nr+1; } cout<<"X are "<<nr<<"factori primi"<<endl; cout<<"suma factorilor primi este"<<S<<endl; return 0; }

12.S se afieze factorii primi ai lui x i puterile lor #include <iostream> using namespace std; int main() { int n,i,nr,s,x,v=0,g; cout<<"n="; cin>>n; x=n; cout<<n<<"| "; for(i=2;i<=n;i++) while(n%i==0) { cout<<i<<endl; n=n/i; cout<<n<<" | "; } for(i=2;i<=x;i++) { if(s==1) cout<<endl<<i-1<<" la puterea "<<nr; s=0; nr=0; while(x%i==0 && v==0) { g=x; nr++; s=1; x=x/i; if(x==1 && v==0) { v=1; x=g+1;; } } } return 0; }

14. S se determine cel mai mare ptrat perfect mai mic dect x #include <iostream> #include <math.h> using namespace std; int main() { float x,i,a,aux; cout<<"x="; cin>>x; a=1; for(i=1;i<sqrt(x);i++) { aux=i; i=a; a=aux; } cout<<aux*aux;

return 0; }

15.S se calculeze x factorial (x! = 1*2*3*...*x) #include <iostream> using namespace std; int main() { int x,i,S; cout<<"x="; cin>>x; S=1; for(i=1;i<x;i++) { S=S*i; } x=S*x; cout<<"!x="<<x; return 0; }

17.Sa se scrie un program care genereaza primele n numere prime. Ex: n=10 => 2, 3, 5, 7, 11, 13, 17, 19, 23, 29

#include <iostream> using namespace std; int main() { int n,nr=0,x=2,ok,i,s,v; cout<<"n="; cin>>n; while(nr<n) { s=0; v=x; ok=1; if(x==2 || x==3) { cout<<x<<" "; nr++; x++; s=1; } for(i=2;i<=x/2 && ok==1 && s==0;i++) { if(x%i==0) { ok=0; x++; } if(ok==1 && i==v/2) { cout<<x<<" "; x++; nr++; } } } return 0; }

18. Sa se afiseze toate numerele prime situate in intervalul [p,q], precum si numarul acestora, unde p si q sunt doua numere naturale date. #include <iostream> using namespace std; int main() { int p,q,max,min,i,ok; cout<<"p="; cin>>p; cout<<"q="; cin>>q; if(p<=q) { max=q; min=p; } else { max=p; min=q; } for(min;min<=max;min++) { ok=0; for(i=2;i<=min/2 && ok==0;i++) { if(min%i==0) ok=1; if(ok==0 && i==min/2) cout<<min<<" "; } } return 0; }

19. Sa se afiseze toti divizorii comuni a doua numere. Ex: divizorii comuni ai numerelor 60 si 350 sunt 1, 2, 5, 10 #include <iostream> using namespace std; int main() { int x,y,min,i; cout<<"x="; cin>>x; cout<<"y="; cin>>y; if(x<=y) min=x; else min=y; for(i=1;i<=min;i++) if(x%i==0 && y%i==0) cout<<i<<" "; return 0; }

20. Sa se scrie un program care determina descompunerea in factori primi a unui numar natural dat. #include <iostream> using namespace std; int main() { int x,i,ok=0; cout<<"x="; cin>>x; cout<<x; for(i=2;i<=x;i++) while(x%i==0) { cout<<" | "<<i<<endl; x=x/i; cout<<x; if(x==1) cout<<" |"; } return 0; }

S-ar putea să vă placă și