素因数分解

#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;

int a[100001];//0未知 1素数 2非素数
int main(){
    memset(a, 0, sizeof(a));

    for (int i = 2; i < 100001;i++)
    {
        if (a[i] == 1||a[i]==2)
            continue;
        else{
            int max = sqrt(i) + 1;
            a[i]=1;
            for (int j = 2; j < max; j++)
                if (i%j == 0)
                {
                    a[i] = 2; break;
                }
        }
        if (a[i] == 1)
        {
            for (int k = i; k*i <= 100000; k++)
                a[k*i] = 2;
        }
    }
    int n;
    int b[10],j=0;
    while (cin >> n)
    {
        int i;
        int res = 0;
        int tmp = n;
        for (i = 2; i < n; i++)
        {
            if (a[i] == 1 && n%i == 0)
            {
                b[j++] = i;
                while (tmp%i == 0)
                {
                    res++;
                    tmp /= i;
                }
            }
            if (tmp == 1)break;
        }
        //若不为1则一定是个大于100000的素因数
        if (tmp != 1)
            res++;
        cout << res << endl;

 

    }
    
    return 0;
}

 

 

### 如何在 MySQL截取日期字段的值 #### 使用 `DATE()` 函数提取日期部分 当处理 `DATETIME` 或 `TIMESTAMP` 类型的数据时,如果只需要获取其中的日期部分,则可以使用 `DATE()` 函数。此函数会返回给定时间表达式的日期部分。 ```sql SELECT DATE(datetime_column) AS date_only FROM table_name; ``` 该查询语句将会把表内名为 `datetime_column` 的列中的每一个 `DATETIME` 值转换成仅含年月日的形式并显示出来[^1]。 #### 利用 `YEAR()`, `MONTH()`, 和 `DAY()` 提取出具体组件 对于更细粒度的操作来说,还可以单独调用专门用于取得特定组成部分(比如年份、月份或是天数)的函数: - 获取年份:`YEAR(date_column)` - 获取月份:`MONTH(date_column)` 或者 `EXTRACT(MONTH FROM date_column)` - 获取日子:`DAYOFMONTH(date_column)` 或者 `EXTRACT(DAY FROM date_column)` 下面是一个例子展示怎样分别获得各个成分: ```sql SELECT YEAR(datetime_column), MONTH(datetime_column), DAY(datetime_column) FROM table_name; ``` 这将返回三列数据,每列表示对应记录里存储的时间戳所对应的那一年、那一月以及那一天的信息。 #### 应用 `STR_TO_DATE()` 结合其他字符串操作函数自定义格式化输出 有时候可能希望按照某种特殊的格式来呈现日期信息,在这种情况下就可以考虑先利用 `DATE_FORMAT()` 将其转化为所需的样式再进一步加工;或者是反过来,如果有现成但是不符合预期模式的文字串表示形式的话也可以借助于 `STR_TO_DATE()` 来解析回标准日期对象以便后续计算或比较。 例如要得到形如 "YYYY-MM-DD" 这样的纯文本格式的结果集可以用如下方式达成目标: ```sql SELECT DATE_FORMAT(datetime_column,'%Y-%m-%d') formatted_date FROM table_name; ``` 而若是面对的是像 '2023/7/8' 这样带斜杠分隔符的日文输入则可通过下述手段转为内部认可的标准类型: ```sql SELECT STR_TO_DATE('2023/7/8','%Y/%c/%e'); ``` 这里 `%Y`, `%m`, `%d` 是指代四位数年的占位符、两位数月份数字还有单个数字代表的一号到三十几号之间任意一天的意思[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值