Advertisement
icatalin

lucru backt 24.11.2015

Nov 24th, 2015
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. //sa se genere totae numerele de k cifre ( 1 - 10 ) care au cifrele in ordine strict cresctoare si sunt nr prime
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <cmath>
  6.  
  7. using namespace std;
  8.  
  9. ifstream f("date.in");
  10. ofstream g("date.out");
  11.  
  12.  
  13. int st[10],k;
  14.  
  15. void init()
  16. {
  17.     cin>>k;
  18. }
  19.  
  20. int prim(int x)
  21. {
  22.     int i;
  23.     if (x<=1)
  24.         return 0;// nu e prim
  25.  
  26.         if (x%2==0)
  27.             return 0;// nu e prim
  28.  
  29.  
  30.   for (i=2;i<=sqrt(x);i++)
  31.         if (x%i==0)
  32.         return 0; // nu e prim
  33.  
  34.   return 1; // e prim
  35.  
  36. }
  37.  
  38. int valid(int p)
  39. {
  40.     int i;
  41.  
  42.     for (i=1;i<p;i++)
  43.         if (st[i]>=st[p])
  44.         return 0;
  45.  
  46.     return 1;
  47. }
  48.  
  49. int solutie(int p)
  50. {
  51.     if (p!=k)
  52.         return 0;
  53.  
  54.     int nr=0,i;
  55.  
  56.  
  57.     return 1;
  58. }
  59.  
  60.  
  61.  
  62. void afis()
  63. {
  64.     int i,nr=0;
  65.     for (i=1;i<=k;i++)
  66.         nr=nr*10+st[i];
  67.  
  68.         if (prim(nr)==1)
  69.             {cout<<nr;
  70.             cout<<'\n';
  71.             }
  72.  
  73.  
  74. }
  75.  
  76. void backt(int p)
  77. {
  78.     int i;
  79.     for (i=1;i<=9;i++)
  80.     {
  81.         st[p]=i;
  82.         if (valid(p))
  83.             if (solutie(p))
  84.             afis();
  85.         else
  86.             backt(p+1);
  87.  
  88.     }
  89. }
  90.  
  91.  
  92. int main()
  93. {
  94.     init();
  95.     backt(1);
  96.  
  97.  
  98.  
  99.     return 0;
  100. }
  101.  
  102. se citeste un vector. sa se verifice daca toate elem. vectorului sunt nr prime afisand da sau nu
  103.  
  104. #include <iostream>
  105. #include <fstream>
  106. #include <cmath>
  107.  
  108. using namespace std;
  109.  
  110. ifstream f("date.in");
  111. ofstream g("date.out");
  112.  
  113.  
  114. int v[100],n;
  115.  
  116.  
  117. int verif (int x)
  118. {
  119.     int nrp=0,nri=0,i,c;
  120.  
  121.     while (x)
  122.     {
  123.         c=x%10;
  124.  
  125.         if (c%2==0)
  126.             nrp+=c;
  127.         else
  128.             nri+=c;
  129.  
  130.         x=x/10;
  131.     }
  132.  
  133.     if (nrp>nri)
  134.         return 1;
  135.     return 0;
  136.  
  137. }
  138.  
  139. int prim(int x)
  140. {
  141.     int i;
  142.     if (x<=1)
  143.         return 0;// nu e prim
  144.  
  145.         if (x%2==0 && x!=2)
  146.             return 0;// nu e prim
  147.  
  148.  
  149.   for (i=3;i<=sqrt(x);i=i+2)
  150.         if (x%i==0)
  151.         return 0; // nu e prim
  152.  
  153.   return 1; // e prim
  154.  
  155. }
  156.  
  157. int div(int s,int d)
  158. {
  159.     if (s==d)
  160.     {
  161.         if (prim(v[s])==1)
  162.             return 1;
  163.         else
  164.             return 0;
  165.  
  166.     }
  167.     else
  168.     {
  169.         int mij;
  170.         mij=(s+d)/2;
  171.  
  172.         return div(s,mij) + div(mij+1,d);
  173.     }
  174. }
  175.  
  176.  
  177. int main()
  178. {
  179.     int i;
  180.     cin>>n;
  181.     for (i=1;i<=n;i++)
  182.         cin>>v[i];
  183.         if ( div(1,n) == n)
  184.         cout<<"DA";
  185.         else
  186.             cout<<"NU";
  187.  
  188.     return 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement