SHOW:
|
|
- or go back to the newest paste.
1 | #include <iostream> | |
2 | #include <locale> | |
3 | /*Egy n szám extraprím, ha prímszám, és az összes olyan szám, amelyet az n szám | |
4 | számjegyeinek permutációi során kapunk, ugyancsak prímszám. Például a 113 extraprím, | |
5 | mivel 113, 311, 131 ugyancsak prímszámok. | |
6 | a) Írja meg az f, egyparaméteres alprogram teljes definícióját, amely: | |
7 | - az a paraméterben megkap egy maximum 3 számjegyű természetes számot (a>1) | |
8 | - visszaadja az a paraméter törzstényezőkre bontásában szereplő tényezők hatványainak | |
9 | összegét. | |
10 | Példa: a=90 esetén az alprogram által visszatérített érték 4, mivel a=2*32 | |
11 | *5 és 1+2+1=4. | |
12 | (4p.) | |
13 | b) Írjon egy C/C++ programot, amely billentyűzetről beolvassa az n, 2≤n≤999 természetes | |
14 | számot, majd az f alprogram célszerű meghívásaival kiírja a képernyőre a DA üzenetet, ha | |
15 | n extraprim, különben a NU üzenetet írja ki.*/ | |
16 | using namespace std; | |
17 | ||
18 | void permute(int k,int size); | |
19 | void printArray(int size); | |
20 | void swap(int x, int y); | |
21 | //HIBÁS | |
22 | int f1(int n) | |
23 | { | |
24 | int y; | |
25 | int o2=0,o3=0,o5=0; | |
26 | bool h=false,g=false; | |
27 | do | |
28 | { | |
29 | y=2; | |
30 | do | |
31 | { | |
32 | if(n%y==0) | |
33 | { | |
34 | if(y==n) | |
35 | { | |
36 | g=true; | |
37 | } | |
38 | h=true; | |
39 | n=n/y; | |
40 | } | |
41 | else y++; | |
42 | ||
43 | }while(h==false); | |
44 | ||
45 | if(y==2) {o2++;cout<<"o2: "<<o2<<" ";} | |
46 | if(y==3) {o3++;cout<<"o3: "<<o3<<" ";} | |
47 | if(y==5) {o5++;cout<<"o5: "<<o5<<" "<<endl;} | |
48 | ||
49 | }while(g==false); | |
50 | ||
51 | return o2+o3+o5; | |
52 | - | int i, sz=0, t[100],p=0; for(i=0;i<100;i++) t[i]=0; |
52 | + | |
53 | int vizsgalat(int n) | |
54 | { | |
55 | int i, sz=0; | |
56 | bool b; | |
57 | - | if(sz!=2){cout<<"NU";return;} |
57 | + | |
58 | { | |
59 | if(n%i==0) sz++; | |
60 | } | |
61 | if(sz!=2) b=false; | |
62 | else b=true; | |
63 | return b; | |
64 | - | }while(n>9); |
64 | + | |
65 | void f2(int n) | |
66 | { | |
67 | if(vizsgalat(n)=false) return 0; | |
68 | int t[100],p=0; for(i=0;i<100;i++) t[i]=0; | |
69 | do | |
70 | { | |
71 | t[p]=n%10; | |
72 | n=n/10; | |
73 | //cout<<t[p]<<" "; | |
74 | p++; | |
75 | }while(n!=0); | |
76 | permute(p+2,p); | |
77 | ||
78 | } | |
79 | ||
80 | //========================================================= | |
81 | ||
82 | int array[10] = {0,1,2,3,4,5,6,7,8,9}; | |
83 | ||
84 | void swap(int x, int y){ | |
85 | int temp = array[x]; | |
86 | array[x]=array[y]; | |
87 | array[y]=temp; | |
88 | ||
89 | return; | |
90 | } | |
91 | ||
92 | void printArray(int size){ | |
93 | - | void permute(int k,int size){ |
93 | + | |
94 | ||
95 | for (i=0;i<size;i++) | |
96 | std::cout << array[i] << " "; | |
97 | ||
98 | std::cout << std::endl; | |
99 | ||
100 | return; | |
101 | } | |
102 | ||
103 | void permute(int k,int size,int n){ | |
104 | int i; | |
105 | ||
106 | if (k==0) | |
107 | printArray(size); | |
108 | else{ | |
109 | for (i=k-1;i>=0;i--){ | |
110 | swap(i,k-1); | |
111 | permute(k-1,size); | |
112 | swap(i,k-1); | |
113 | } | |
114 | } | |
115 | - | cout<<"Az A alpont eredménye: "<<f1(n); |
115 | + | |
116 | - | //cout<<"A B alpont eredménye: "<<f2(n); |
116 | + | |
117 | } | |
118 | //========================================================= | |
119 | ||
120 | int main() | |
121 | { | |
122 | setlocale(LC_ALL, ""); | |
123 | int n; | |
124 | cout<<"Az 'n' szám: "; cin>>n; | |
125 | //cout<<"Az A alpont eredménye: "<<f1(n); | |
126 | cout<<"A B alpont eredménye: "; | |
127 | f2(n); | |
128 | return 0; | |
129 | } | |
130 | //========================================================= |