切换到宽版
  • 7238阅读
  • 9回复

求正整数 [复制链接]

上一主题 下一主题
离线nba2010
 
只看楼主 倒序阅读 0 发表于: 2006-11-13
对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。
例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6;而且是最小的有4个因子的整数。

输入
n(1≤n≤50000)

输出
  m

样例
INT.IN          
4

INT.OUT
6
离线stevenjl

只看该作者 1 发表于: 2006-11-13
easy题……
Dream Walker...
离线baigewxl
只看该作者 2 发表于: 2006-11-14
这题很简单,用双重循环就ok了!
program int;
var i,j,k,n,sum:integer;
  zd:boolean;
begin
assign(input,'int.in');
assign(output,'int.out');
reset(input);
rewrite(output);
read(n);
zd:=false;
for i:=1 to 50000 do
  begin
  sum:=0;
  for j:=1 to i do
    if i mod j=0 then
      sum:=sum+1;
  if sum=n then
    begin
    zd:=true;
    k:=i;
    break;
    end;
  end;
  if zd=true then
  writeln(k)
  else writeln(0); {如果没找到输出0}
close(input);
close(output);
end.
离线gabriel
只看该作者 3 发表于: 2006-11-14
楼上是怎么做的没看懂
离线tubro
只看该作者 4 发表于: 2006-11-14
有测试数据吗?
离线天赖
只看该作者 5 发表于: 2006-11-15
组合数学题
离线sai901013
只看该作者 6 发表于: 2007-08-17
顶一下等人解  注意效率问题~
离线sai901013
只看该作者 7 发表于: 2007-08-17
引用第2楼baigewxl于2006-11-14 09:39发表的  :
这题很简单,用双重循环就ok了!
program int;
var i,j,k,n,sum:integer;
    zd:boolean;
begin
.......



二楼的这么低效率~版主~~写点高效点的~~.........
离线clwxzh57
只看该作者 8 发表于: 2007-08-18
简单
离线l-l-l
只看该作者 9 发表于: 2007-08-20
从i:=1到50000分别判断是否是质数,是的话,inc(sum),s[sum]:=i,如果sum=n就把s中所有的数乘起来并退出循环就好了
快速回复
限100 字节
 
上一个 下一个