Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int rishoni(unsigned long n1)
- {
- int tmp=1;
- for(int i=2;i<n1&&tmp==1;i++)
- {
- if(n1%i==0)
- tmp=0;
- }
- return tmp;
- }
- int *prime_multipliers(unsigned long n, int *len )
- {
- *len=0;
- unsigned long n1=n;
- int count=1;
- int i=2;
- while(n1!=1)
- {
- if(rishoni(i)==1)
- {
- if(n1%i==0)
- {
- while(n1%i==0)
- {
- n1=n1/i;
- count++;
- }
- }
- }
- i++;
- }
- int* a=(int*)malloc(count * sizeof(int));
- a[0]=1;
- i=2;
- int tmp=1;
- while(n!=1)
- {
- if(rishoni(i)==1)
- {
- if(n%i==0)
- {
- while(n%i==0)
- {
- n=n/i;
- a[tmp]=i;
- tmp++;
- }
- }
- }
- i++;
- }
- *len=count;
- free(a);
- return a;
- }
- unsigned long gcd_2(int a1[], int len1, int a2[], int len2)
- {
- int n1=1;
- int n2=1;
- for(int i=0;i<len1;i++)
- {
- n1=n1*a1[i];
- }
- for(int i=0;i<len2;i++)
- {
- n2=n2*a2[i];
- }
- int tmp=0;
- int* a=(int*)malloc(n1 * sizeof(int));
- for(int i=1;i<n1;i++)
- {
- if(n1%i==0)
- {
- a[tmp]=i;
- tmp++;
- }
- }
- a[tmp]=n1;
- unsigned long k=1;
- for(int i=tmp;i>=0;i--)
- {
- if(n2%a[i]==0)
- {
- k=a[i];
- i=-1;
- }
- }
- return k;
- }
- unsigned long gcd_array(unsigned long data[],int n)
- {
- int n1=data[0];
- unsigned long* a=(unsigned long*)malloc(n1 * sizeof(unsigned long));
- for(int i=0;i<n1;i++)
- {
- a[i]=0;
- }
- int tmp=0;
- for(int i=1;i<n1;i++)
- {
- if(n1%i==0)
- {
- a[tmp]=i;
- tmp++;
- }
- }
- a[tmp]=n1;
- unsigned long k=0;
- int flag=1;
- for(int i= tmp; i>=0; i--)
- {
- flag=1;
- for(int j=1;j<n && flag==1;j++)
- if(data[j]%a[i]!=0)
- {
- flag=0;
- }
- if(flag==1)
- {
- k=a[i];
- i=-1;
- }
- }
- return k;
- }
- int main()
- {
- printf("Please enter the array : \n");
- int m;
- scanf("%d",&m);
- unsigned long* a=(unsigned long*)malloc(m * sizeof(unsigned long));
- for(int i=0;i<m;i++)
- {
- unsigned long n1;
- scanf("%lu",&n1);
- a[i]=n1;
- }
- unsigned long k=gcd_array(a,m);
- printf("The gcd is %lu\n",k);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement