Avionics OJ1017

Seemingly difficult to calculate the actual violence can be AC

Note that the output form the subject described

Is divided into N blocks, arbitrary sets of data within each block constituting, when read n = 0, m = 0, the block is exited, and the inter-line space the blocks. Output is the "Case x: y"

Problem Description

Given two integers n and m, count the number of pairs of integers (a,b) such that 0 < a < b < n and (a2+b2 +m)/(ab) is an integer.

This problem contains multiple test cases!
The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.
The output format consists of N output blocks. There is a blank line between output blocks.

Input

You will be given a number of cases in the input. Each case is specified by a line containing the integers n and m. The end of input is indicated by a case in which n = m = 0. You may assume that 0 < n <= 100.

Output

For each case, print the case number as well as the number of pairs (a,b) satisfying the given property. Print the output for each case on one line in the format as shown below.

Sample Input

1

10 1
20 3
30 4
0 0

Sample Output

Case 1: 2
Case 2: 4
Case 3: 5

The gist:

Given two integers n and m, calculates the integer number of pairs (a, b) so that 0 <a <b <n, and (a ^ 2 + b ^ 2 + m) / (ab) is an integer.

This issue contains multiple test cases!

The first row of the plurality of input N is an integer, then the blank line, followed by N input blocks. Each input block are described in the format indicated problems. There is a blank line between the input block.

N output from the output format blocks. There is a blank line between the output block.
Entry
input will provide a number of cases. Each case designated by a row contains an integer n and m. End of the input by the case n = m = 0 FIG. You can assume that 0 <n <= 100.
Output
log (a, b) for each case, the case number, and the print satisfies the given property. As shown below, the output of in each case one line of print on.

Attach AC Code
#include <iostream>
#include<stdio.h>
using namespace std;

int main()
{
    int N;
    scanf("%d",&N);
    while(N--){
        int i=1;
        while(i){
            int n,m;
            scanf("%d %d",&n,&m);
            int sum=0;
            if(n==0&&m==0)
                break;
            for(int a=1;a<n;a++)
                for(int b=a+1;b<n;b++)
                   if((a*a+b*b+m)%(a*b)==0)
                        sum++;
            printf("Case %d: %d\n",i,sum);
            i++;
        }
        if(N)
            printf("\n");
    }
    return 0;
}

Released five original articles · won praise 14 · views 607

Guess you like

Origin blog.csdn.net/qq_43732324/article/details/103207956