View difference between Paste ID: c5y0rNhR and ZLA6dmfc
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
//=========================================================