• 2022-06-11
    最多约数问题:正整数x的约数是能整除x的正整数。正整数x的约数的个数记为div(x)。例如,1,2,5,10都是10的约数,div(10)=4。设a≤b是两个正整数,找出a和b之间约数个数最多的数x。
  • 设正整数x的质因子分解为 ,则 。 算法:搜索区间[a,b]中数的质因子分解: [br][/br] void primes(){ //产生质数。 [br][/br] bool get[MAXP+1]; [br][/br] for(i=2;i[=MAXP;i++) get[i]=true; =1) [br][/br] if(tot>max || tot=max &&num [br][/br] max=tot; numb=num; [br][/br] } [br][/br] if(low==up && low>num) search(from, tot*2, numb*low, 1, 1); [br][/br] for(i=from; i[=PCOUNT;i++) up) return; [br][/br] elese { [br][/br] int j=prim[i], x=low-1, y=up, n=num, t=tot, m=1; [br][/br] while(true){ [br][/br] m++; t+=tot; x/=j; y/=j; [br][/br] if(x==y) break; [br][/br] n*=j; [br][/br] search(i+1, t, n, x+1, y); [br][/br] } //while [br][/br] m=1 m; i [br][/br] f(tot [br][/br] } //else [br][/br] } [br][/br] int main(){ [br][/br] primes(); [br][/br] cin>>low>>up; [br][/br] if(low==1 && up==1) {max=1;numb=1;} [br][/br] else{ max=2; numb=low; search(1,1,1,low,up); [br][/br] cout max endl; [br][/br] return 0; }[/i][/i][/i][/i][/i]

    内容

    • 0

      当整数n>2时,关于x,y,z的不定方程x^n+y^n=z^n.无正整数解?

    • 1

      自然数、正整数和整数这三个数概念中,()的范围最大。 A: 自然数 B: 正整数 C: 整数

    • 2

      360具有的正约数的个数是

    • 3

      对于等价类{x|1 ≤ x ≤ 10}来说,x的无效等价类是 A: 1≤ x ≤ 10 B: x<1或x>10 C: x<2或x>100 D: x属于整数

    • 4

      x是一个三位正整数数,下列哪个是能求出其十位数字 A: int(x/100) B: int((x-int(x/100)*100)/10) C: int(x/10) D: x