题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1157
| input | output |
|---|---|
2 3 1 |
16 |
题意:
一个年轻的瓦工,用很多瓦片拼矩形,给出M,N,K(0 < M,N,K ≤ 10000),要求出最小的瓦片数L,使L片瓦片可以拼出N种矩形,L-K片瓦片可以拼出M种矩形。
如果l小于10000,则输出l,否则输出0
样例输入:
2 3 1
样例输出:
16
样例解释:16(L)片瓦片可以拼出3种(1*16,2*8,4*4),15(L-K)片瓦片可以拼出2种(1*15,3*5)
代码如下:
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int findd(int num)
{
if(num < 0)
return -1;
int cont = 0;
for(int i = 1; i <= sqrt(num*1.0); i++)
{
if(num%i == 0)
{
cont++;
}
}
return cont;
}
int main()
{
int m, n, k;
while(~scanf("%d%d%d",&m,&n,&k))
{
int ans = 0;
for(int i = 1; i <= 10000; i++)
{
if(findd(i)==n && findd(i-k)==m)
{
ans = i;
break;
}
}
printf("%d\n",ans);
}
return 0;
}
原文:http://blog.csdn.net/u012860063/article/details/44540883