杭电1017

#include <iostream>
#include <stdio.h>
using namespace std;
//0 0是case的结尾
// input block有N块 N是input block的块数
//第一行是N 一块中可以有很多case 直到0 0表示一个input block结束
// input block间有空行
//output block有N块
//output block间有空行
//输出时 输出case序号和(a,b)对数
//a number of cases 和the number of cases的区别这里很明显
//case 的编号会重复

int main()
{
    int N,n,m;
    int a,b;
    cin>>N;
    for(int i=0;i<=N-1;i++)
    {
        int j=0;//每块input block都有一个记录case个数的j 都要先初始化为0
        while(cin>>n>>m)
        {
            int num=0;
            if(n==0&&m==0)
            {
                break;

            }
            else

                {
                j++;//j是case个数
                }

            for(a=1;a<=n-2;a++)
            {

                for (b =a+1; b <= n - 1; b++)
                {
                    if ((a * a + b * b + m) % (a * b)==0)
                    {
                        num++;//为数对对数 每个case(输入有效n m算一次)中有一个num对应 都算一次
                        //cout<<num<<endl;
                    }
                }
            }
                //cout<<num;
            //for(int i=0;i<=j-1;i++)//覆盖也只是为了计数而已( 上面的也是)所以只要下面的也是用来计数就可以覆盖
            //{
                cout<<"Case "<<j<<": "<<num<<endl;//保证所有case全都说明了 每个case只输出一次 所以不用for
            //}


        }

        if(i!=N-1)cout<<endl;



    }





}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值