4 条题解

  • 1
    @ 2022-12-12 11:44:14

    AC代码,放心食用

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long m, n, x, i, cnt = 0;
        cin >> m >> n;
        x = m * n;
        for (i = 2; i <= sqrt(x); i++)
        {
            if ((x % i == 0) && (i != m))
            {
      	        cnt++;
    	    }
        }
    	cout << cnt << endl;
    	return 0;
    }
    
    • -2
      @ 2022-5-22 17:31:05

      题目计算mn的积,除了m和n以及1和积的本身,这两对除外,还有几对因子组合就行了; 那我们从2到乘积-1遍历,为了减少复杂度,可以想象一下一个长方形,长宽再递减变成正方形前,长和宽都有不同值,但是在变成正方形后,再递减又变成长方形,那么这样和编程之前的长和宽是一样的,所以我们只要便利到 因子因子>乘积时,就可以退出循环啦

          for(long long i=2;i<number;i++){
              if((i*i)>number) break;
          	if(number%i==0){
          		if(m!=i&&n!=i){ //注意排除掉 初始的因子,其他的进行计数
          			num++;
      			}
      		}
      	}
      

      这里要注意数据类型要定义成 long long;因为int类型的取值范围是:-2147483648 ~ 2147483647,m<=n<=9999999m<=n<=9999999,乘积大于int的取值范围,所以注意定义类型

      • -4
        @ 2022-6-3 13:41:20

        这题也考察int数据范围和long long 的数据范围

        数据类型直接定义成long long 就可以啦!

        int main()
        {
            long long m,n,sum……; 
            return 0;
        }
        

        请看下图,因为题目m和n的范围到了$9999999$,$m*n$最多可能是$10^{14}$左右,导致超出了int的存储范围,int的最大范围是$2*10^9$左右,因此我们需要改为 long long,注意long之间有空格。

        基础数据类型的大小

        数据类型名 内容(一般情况) 占用内存大小 能储存的范围
        int/signed 32 位整数 4 Bytes 2×1092×109-2\times 10^9\sim 2\times 10^9
        long long 64 位整数 8 Bytes 9×10189×1018-9\times 10^{18}\sim 9\times 10^{18}
        char 字符 1 Byte 至少能储存 01270\sim 127
        常见范围为 128127-128\sim 127
        float 单精度浮点数 4 Bytes 3.4×10383.4×1038-3.4\times 10^{38}\sim 3.4\times 10^{38}
        有效数字 676\sim 7
        double 双精度浮点数 8 Bytes 1.7×103081.7×10308-1.7\times 10^{308}\sim 1.7\times 10^{308}
        有效数字 151615\sim 16 位$
        • -8
          @ 2022-6-11 20:36:25

          #include <iostream> using namespace std; int main() { long long n,m,num = 0; cin >> n >> m; long long kaa = nm; for(long long i=2;i<kaa;i++) { if((ii)>kaa) { break; } if(kaa%i==0) { if(m!=i and n!=i) { num++; } } } cout << num; return 0; }

          • 1

          信息

          ID
          315
          时间
          1000ms
          内存
          16MiB
          难度
          8
          标签
          递交数
          673
          已通过
          100
          上传者