第1个回答 2013-05-14
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n,ans[20001],a;
memset(ans,0,sizeof(ans));
for (n = 1; n <= 20000; n++)
for (i = 1;i <= n; i++)
if(n%i==0)ans[n]++;
bool is_ans;
while (~scanf("%d",&a))
{
is_ans = 0;
for (i = a; i < 20001; i++)
{
if(ans[i] == a)
{
printf("%d\n",i);
is_ans = true;
break;
}
}
if(!is_ans)printf("NO SOLUTION\n");
}
}
第2个回答 2013-05-14
Var i,j,k,d:longint;
a:Array [1..20000]of longint;
begin
readln(k);
for i:=1 to 20000 do
begin
j:=1;
d:=0;
while j*j<i do begin if i mod j=0 then inc(d); inc(j); end;
if j*j=i then a[i]:=2*d+1
else a[i]:=2*d;
if a[i]=k then begin writeln(i); halt; end;
end;
writeln('NO SOLUTION');
end.
采纳我哦本回答被提问者和网友采纳