• 基础练习 分解质因数


    问题描述
      求出区间[a,b]中所有整数的质因数分解。
    输入格式
      输入两个整数a,b。
    输出格式
      每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)
    样例输入
    3 10
    样例输出
    3=3
    4=2*2
    5=5
    6=2*3
    7=7
    8=2*2*2
    9=3*3
    10=2*5
    提示
      先筛出所有素数,然后再分解。
    数据规模和约定
      2<=a<=b<=10000
     1 /*
     2 2020年3月25日18:02:10
     3 蓝桥杯习题
     4 问题描述
     5   求出区间[a,b]中所有整数的质因数分解。
     6 输入格式
     7   输入两个整数a,b。
     8 输出格式
     9   每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)
    10 样例输入
    11 3 10
    12 样例输出
    13 3=3
    14 4=2*2
    15 5=5
    16 6=2*3
    17 7=7
    18 8=2*2*2
    19 9=3*3
    20 10=2*5
    21 提示
    22   先筛出所有素数,然后再分解。
    23 数据规模和约定
    24   2<=a<=b<=10000 
    25 */
    26 
    27 #include<iostream>
    28 #include<cmath>
    29 using namespace std;
    30 
    31 int fun(int n)
    32 {
    33     int m;
    34     m = (int)sqrt(n);
    35     int i;
    36     for(i = 2; i <= m; i++)
    37     {
    38         if(n % i == 0)
    39         return i;
    40     }
    41     return n;
    42 }
    43 
    44 int main()
    45 {
    46     int a,b;
    47     while(cin >> a >> b)
    48     {
    49         int i , k;
    50         for(i = a; i <= b; i++)
    51         {
    52             int j = fun(i);
    53             k = i / j;
    54             cout << i << '=' << j;
    55             while(k > 1)
    56             {
    57                 j = fun(k);
    58                 k = k / j;
    59                 cout << '*' << j;
    60             }
    61             cout << endl;
    62         }
    63     }
    64     return 0;
    65 }

    网上大佬做法真的服了!

    /*2020年3月25日18:08:39 
    判断素数
    输入一个整数
    输出是否 
    */
    
    #include<iostream>
    #include<cmath>
    using namespace std;
    
    int isPrime(int n)
    {
        int m;
        m = (int)sqrt(n);
        int i;
        for(i = 2; i <= m; i++)
        {
            if(n % i == 0)
            break;
        }
        //如果i全部不能被n整除,i就变成m+1,所以要判断i是否大于m
        if(i > m)
        return 1;
        else
        return 0; 
    }
    
    int main()
    {
        int num;
        while(cin >> num)
        {
            if(isPrime(num))
            cout << num << "是素数!" << endl;
            else
            cout << num << "不是素数!" << endl;
        }
        return 0;
     } 

    我这条咸鱼终于把素数判断弄懂了。

  • 相关阅读:
    python实现单线程多任务非阻塞TCP服务端
    sudo命令
    ajax 未加载出数据时,显示loding,数据显示后,隐藏loading
    ie7 解决圆角,阴影问题
    学习JavaScript你必须掌握的8大知识点!
    es6 个人笔记
    原生js,实现单选框
    原生js开发简单复选框,点击变颜色,再点击取消颜色,三种解决方法
    es6对象转数组
    JS正则截取两个字符串之间及字符串前后内容的方法
  • 原文地址:https://www.cnblogs.com/wlyperfect/p/12568585.html
Copyright © 2020-2023  润新知