Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale>
- /*Egy n szám extraprím, ha prímszám, és az összes olyan szám, amelyet az n szám
- számjegyeinek permutációi során kapunk, ugyancsak prímszám. Például a 113 extraprím,
- mivel 113, 311, 131 ugyancsak prímszámok.
- a) Írja meg az f, egyparaméteres alprogram teljes definícióját, amely:
- - az a paraméterben megkap egy maximum 3 számjegyű természetes számot (a>1)
- - visszaadja az a paraméter törzstényezőkre bontásában szereplő tényezők hatványainak
- összegét.
- Példa: a=90 esetén az alprogram által visszatérített érték 4, mivel a=2*32
- *5 és 1+2+1=4.
- (4p.)
- b) Írjon egy C/C++ programot, amely billentyűzetről beolvassa az n, 2≤n≤999 természetes
- számot, majd az f alprogram célszerű meghívásaival kiírja a képernyőre a DA üzenetet, ha
- n extraprim, különben a NU üzenetet írja ki.*/
- using namespace std;
- void permute(int k,int size);
- void printArray(int size);
- void swap(int x, int y);
- //HIBÁS
- int f1(int n)
- {
- int y;
- int o2=0,o3=0,o5=0;
- bool h=false,g=false;
- do
- {
- y=2;
- do
- {
- if(n%y==0)
- {
- if(y==n)
- {
- g=true;
- }
- h=true;
- n=n/y;
- }
- else y++;
- }while(h==false);
- if(y==2) {o2++;cout<<"o2: "<<o2<<" ";}
- if(y==3) {o3++;cout<<"o3: "<<o3<<" ";}
- if(y==5) {o5++;cout<<"o5: "<<o5<<" "<<endl;}
- }while(g==false);
- return o2+o3+o5;
- }
- int vizsgalat(int n)
- {
- int i, sz=0;
- bool b;
- for(i=1;i<=n;i++)
- {
- if(n%i==0) sz++;
- }
- if(sz!=2) b=false;
- else b=true;
- return b;
- }
- void f2(int n)
- {
- if(vizsgalat(n)=false) return 0;
- int t[100],p=0; for(i=0;i<100;i++) t[i]=0;
- do
- {
- t[p]=n%10;
- n=n/10;
- //cout<<t[p]<<" ";
- p++;
- }while(n!=0);
- permute(p+2,p);
- }
- //=========================================================
- int array[10] = {0,1,2,3,4,5,6,7,8,9};
- void swap(int x, int y){
- int temp = array[x];
- array[x]=array[y];
- array[y]=temp;
- return;
- }
- void printArray(int size){
- int i;
- for (i=0;i<size;i++)
- std::cout << array[i] << " ";
- std::cout << std::endl;
- return;
- }
- void permute(int k,int size,int n){
- int i;
- if (k==0)
- printArray(size);
- else{
- for (i=k-1;i>=0;i--){
- swap(i,k-1);
- permute(k-1,size);
- swap(i,k-1);
- }
- }
- return;
- }
- //=========================================================
- int main()
- {
- setlocale(LC_ALL, "");
- int n;
- cout<<"Az 'n' szám: "; cin>>n;
- //cout<<"Az A alpont eredménye: "<<f1(n);
- cout<<"A B alpont eredménye: ";
- f2(n);
- return 0;
- }
- //=========================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement