1 条题解

  • 0
    @ 2021-6-14 23:29:18

    C :

    #include<stdio.h>
    
    int main()
    {
      int x,y,m,i,j,n;
      scanf("%d%d",&x,&y);
      m=x>y?x:y;
      int count=0;
      for(i=2;i<=m;i++)
      {
    	  int k=i>x*y/i?x*y/i:i;
    	  int h=i>x*y/i?i:x*y/i;
    	  for(j=k;j>0;j--)
    	  {
    	    if((i%j==0)&&(x*y/i%j==0))
    			break;
    	  }
    	  for(n=h;n<=x*y;n++)
    	  {
    	    if((n%i==0)&&(n%(x*y/i)==0))
    			break;
    	  }
    	  if(j==x&&n==y)
    		  count++;
      }
      printf("%d\n",count);
      return 0;
    }
    

    C++ :

    #include<stdio.h>
    int g(int n,int m)
    {
    	int temp,r;
    	if(n<m) 
    	{ 
    		temp=n; 
    		n=m; 
    		m=temp; 
    	} 
    	while(m!=0) 
    	{ 
    		r=n%m; 
    		n=m; 
    		m=r; 
    	} 
    	return n;
    }
    int main()
    {
    	int a,b,i,j,count;
    	while(scanf("%d%d",&a,&b)!=EOF)
    	{
    		count=0;
    		for(i=a;i<=b;i++)
    		{
    			for(j=i+1;j<=b;j++)
    			{
    				if(g(i,j)==a&&i*j/g(i,j)==b)
    					count++;
    			}
    		}
    		printf("%d\n",2*count);
    	}
    	return 0;
    }
    

    Pascal :

    var
       x1,x2,i,j,s,y,r,a,b:int64;
    begin
     readln(x1,x2);
     s:=0;
     i:=0;
     repeat
      i:=i+x1;
      j:=0;
      repeat
       j:=j+x1;
       a:=j;
       b:=i;
        repeat
         if a<b then
          begin
           r:=a;
           a:=b;
           b:=r;
          end;
         a:=a-b;
        until a=0;
       if (i*j  div x1=x2)and(b=x1)then inc(s);
      until j>=x2;
     until i>=x2 ;
     writeln(s);
    end.
    
    • 1

    信息

    ID
    208
    时间
    1000ms
    内存
    125MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者