博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
合数分解为质数的乘积模板
阅读量:6830 次
发布时间:2019-06-26

本文共 739 字,大约阅读时间需要 2 分钟。

#include
using namespace std;#define ll long long#define INF 1000 ll num[200], cnt; //num[]记录n的质数因子,cnt记录个数int main(){ ll n; cin >> n; for (ll i = 2; n != 1; ++i) { while (n%i == 0) { num[cnt++] = i; n /= i; } if (i > INF)break; //当n是个大数,如果再一个个枚举一定超时,但是对于大数而言, 为素数的可能性十分小就直接退出了,尽管有可能是错的。但是概率非常小。 } if (n != 1)num[cnt++] = n;//如果n!=1时,说明它极可能为素数。}//判定大数是否为素数是用随机数法来判断。会在后面更新这个方法。 还有一种方法,那就是先把素数先筛出来,但是一个素数筛得时间复杂度O(n).再加上这个代码的时间复杂度反而变大了、

 

素数判定

√n/2的复杂度

bool pri(int x){    if (x < 2 || x % 2 == 0)return 0;    for (int i = 3; i*i < x;i+=2)    if (x%i == 0)return 0;    return 1;}

 

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/9581532.html

你可能感兴趣的文章
python数字图像处理(14):高级滤波
查看>>
extern c
查看>>
(Question)CSS中position的绝对定位问题
查看>>
在html中禁用自己主动完毕
查看>>
寒哥细谈之AutoLayout全解
查看>>
模拟点击网页指定文字
查看>>
使用struts2和poi导出excel文档
查看>>
[每日菜单]lunch menu for Wednesday, February 24 2016
查看>>
【Xamarin挖墙脚系列:配置Mac之间的连接问题】
查看>>
Intel大坑之中的一个:丢失的SSE2 128bit/64bit 位移指令,马航MH370??
查看>>
PopupWindow分享页面
查看>>
删除数组中某个元素
查看>>
一个屌丝程序猿的人生(七)
查看>>
安装ubuntu和安装ubuntu后要安装的软件列表
查看>>
设置控件全局显示样式 appearance
查看>>
Java集合类:AbstractCollection源码解析
查看>>
Incorrect key file for table './xx_db/xx_table.MYI'; try to repair it
查看>>
自定义jQuery插件Step by Step
查看>>
linux下编译安装apache
查看>>
PHP采集curl应用的一点小疑惑
查看>>