分解因式pascal一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、9、18,所以F(18)=6.现在给出K,求所有满足F(N)=K的N中最小的数.要求pascal语言完成.Input 第一行n,表示有n个数据,1我
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 12:50:12
分解因式pascal一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、9、18,所以F(18)=6.现在给出K,求所有满足F(N)=K的N中最小的数.要求pascal语言完成.Input 第一行n,表示有n个数据,1我
分解因式pascal
一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、9、18,所以F(18)=6.现在给出K,求所有满足F(N)=K的N中最小的数.
要求pascal语言完成.
Input
第一行n,表示有n个数据,1
我要的是Pascal语言啊三楼!
分解因式pascal一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、9、18,所以F(18)=6.现在给出K,求所有满足F(N)=K的N中最小的数.要求pascal语言完成.Input 第一行n,表示有n个数据,1我
要优化:
program temp;
var i,n,k:longint;
begin
readln(n);
for i:=1 to n do begin
readln(k);
if k=1 then writeln(1) else writeln('2^',k-1);
end;
end.
//当我没说过。。。。。。
把K因式分解
若分为K=a*b*c*d
令a>b>c>d
按照素数表顺序
n应为2^(a-1)*3^(b-1)*5^(c-1)*7^(d-1)
n一定最小
方法1.枚举n(显然超时)
方法2.对k进行因式分解(像3l一样,但是不一定是质因子),排序,找最小的一个。要用高精度的吧。。。而且复杂度不好估计
方法3.dp。dp[i][j]表示k=i时n最小。条件是n分解质因数时最大的质数为第j号质数。也要用到高精度,甚至快速取幂。。。
没有特别好的方法。。。...
全部展开
方法1.枚举n(显然超时)
方法2.对k进行因式分解(像3l一样,但是不一定是质因子),排序,找最小的一个。要用高精度的吧。。。而且复杂度不好估计
方法3.dp。dp[i][j]表示k=i时n最小。条件是n分解质因数时最大的质数为第j号质数。也要用到高精度,甚至快速取幂。。。
没有特别好的方法。。。
收起
真复杂深奥。