内存:128  时间:1

题目描述

注:本题只需要提交填写部分的代码,请按照C语言方式提交。

经过Umi不懈的努力,Honoka终于弄懂了质数的概念,但期末考试哪有这么简单!于是Umi又给了Honoka一些整数,让Honoka求出这些整数中互质的对数,这时Kotori过来参与她们的复习,觉得很有意思,于是也给了Honoka一些数字。加上之前的数字,这下题目就更难了。

#include <stdio.h>

#include <stdlib.h>

int main()

{

    int *arr,n,m,t;

    scanf("%d",&t);

    while(t–)

    {

        int sum=0,i,j;

        scanf("%d",&n);

        arr=(int*)malloc(n*sizeof(int));

        for(i=0; i<n; ++i)

            scanf("%d",&arr[i]);

        scanf("%d",&m);

        /*

        这里填写realloc函数和其他需要的代码

        */

        int t,a,b;

        for(i=0; i<n+m; ++i)

            for(j=i+1; j<n+m; ++j)

            {

                a=arr[i],b=arr[j];

                while(1)

                {

                    t=a%b;

                    if(t==0)

                        break;

                    else

                    {

                        a=b;

                        b=t;

                    }

                }

                if(b==1)

                    sum++;

            }

        printf("%d
",sum);

        free(arr);

    }

    return 0;

}

输入

第一行输入一个正整数T(1<=T<=10),表示有T组测试数据。

对于每组测试数据

第一行一个正整数n(1<=n<=100),表示先给出n个整数。

第二行n个正整数a[i](1<=a[i]<=100),表示n个整数分别是多少。

第三行一个正整数m(1<=m<=100),表示之后又给出m个整数。

第四行m个正整数a[i](1<=a[i]<=100),表示m个整数分别是多少。

所有给出的正整数不会重复。

输出

对于每组测试数据,输出一个整数,表示互质的整数的对数。

样例输入

1
2
2 3
2
4 5

样例输出

5

提示

只需提交缺少的代码部分!

realloc函数用于扩大当前指针指向的内存空间,并保留原来的内容。

代码如下


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int *arr,n,m,t;
    scanf("%d",&t);
    while(t--)
    {
        int sum=0,i,j;
        scanf("%d",&n);
        arr=(int*)malloc(n*sizeof(int));
        for(i=0; i<n; ++i)
            scanf("%d",&arr[i]);
        scanf("%d",&m);arr=(int*)realloc(arr,(n+m)*sizeof(int));
        for(i=n; i<n+m; ++i)
            scanf("%d",&arr[i]);
int t,a,b;
        for(i=0; i<n+m; ++i)
            for(j=i+1; j<n+m; ++j)
            {
                a=arr[i],b=arr[j];
                while(1)
                {
                    t=a%b;
                    if(t==0)
                        break;
                    else
                    {
                        a=b;
                        b=t;
                    }
                }
                if(b==1)
                    sum++;
            }
        printf("%d
",sum);
        free(arr);
    }
    return 0;
}

代码来源于互联网,仅供参考!