首页 > 学院 > 开发设计 > 正文

寻找i*j=m的个数(简单模拟)

2019-11-14 10:26:22
字体:
来源:转载
供稿:网友

PRoblem Link:http://139.129.36.234/problem.php?id=1262

1262: 寻找i*j=m的个数

时间限制: 1 Sec  内存限制: 128 MB提交: 3  解决: 3[提交][状态][讨论版]

题目描述

3*3的矩阵内容:1 2 32 4 63 6 9即a[i][j](1<=i<=n,1<=j<=n)=i*j。问一个这样n*n的矩阵里面,里面m出现的次数。例如n为3,m为6.那么出现的次数就是2

输入

输入正整数N,表示N例测试(N<=20)。接着输入n(n<=10^5),m(<=10^9)。

输出

对每组输入数据,输出m出现的次数。

样例输入

23 63 3

样例输出

22

提示

来源

2016北京邮电大学复试机试题

AC code:

#include<iostream>#include<algorithm>#include<stdio.h>#include<map>#include<math.h>#include<string.h>#include<queue>#include<vector>#include<set>#define LL long long#define exp 1e-9#define MAXN 1000010using namespace std;int main(){//	freopen("D://in.txt","r",stdin);	int i,j,k,n,m,l,t,ans;	scanf("%d",&t);	for(i=1;i<=t;i++)	{		scanf("%d%d",&n,&m);		ans=0;		k=(int)sqrt(m);		for(j=1;j<=k&&j<=n;j++)		{			if(m%j==0)			{				l=m/j;				if(l<=n)				{					if(l!=j)						ans+=2;					else					{						ans+=1;					}//					printf("j=%d l=%d/n",j,l);				}			}		}		printf("%d/n",ans);	}	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表