FFT质数打表程序
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void sol(ll x){
int y=0;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
int j=0;
for(;x%i==0;x/=i)++j;
if(y++)cout<<"*";
cout<<i;
if(j!=1)cout<<"^"<<j;
}
if(x!=1){
if(y)cout<<"*";
cout<<x;
}
cout<<endl;
}
bool jud(ll x){
for(ll i=2;i*i<=x;++i)
if(x%i==0)return 0;
return 1;
}
ll wop(ll s,ll n,ll p){
ll t=1;
for(;n;n>>=1){
if(n&1)t=t*s%p;
if(n>1)s=s*s%p;
}
return t;
}
ll phi(ll x){
ll s=x;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
while(x%i==0)x/=i;
s=s/i*(i-1);
}
if(x!=1)s=s/x*(x-1);
return s;
}
ll gen(ll p){
static ll c[16];
ll s=phi(p),x=s;
int k=0;
for(ll i=2;i*i<=x;++i)
if(x%i==0){
while(x%i==0)x/=i;
c[k++]=i;
}
if(x!=1)c[k++]=x;
for(ll i=2;;++i){
int j=0;
while(j!=k&&wop(i,s/c[j],p)!=1)
++j;
if(j==k)return i;
}
}
void out(ll p){
int j=__builtin_ctzll(p-1);
cout<<setw(8)<<p;
cout<<setw(4)<<gen(p);
cout<<" 2^"<<j;
cout<<" * "<<setw(5)<<(p-1>>j);
cout<<endl;
}
int main(){
for(ll i=1;;++i){
ll j=(i<<20)+1;
if(j>2e9)break;
if(jud(j))out(j);
}
}
FFT质数打表程序的更多相关文章
- PHP自动分表程序
http://blog.zol.com.cn/2210/article_2209590.html /** * 分表程序 * * @author Shen Xi shen.xi@zol.com.cn ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- HDU——1286找新朋友(欧拉函数+质数打表)
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- ABAP 通过字段找表程序
2.获取数据保存在哪个数据表的方法: 1.前台对指定栏位 使用F1帮助找表,2.st05 跟踪业务操作过程,检索需要的数据表,(此方法找表很高效)3.对于文本字段找表,可以找到前台维护处,->维 ...
- python九九乘法表程序代码
按照c语言的思路来考虑python的,方法很简单,直接运用双重循环即可,本代码为了代码量少采用的是while嵌套双循环. 取两个随机变量 (1)i和j都从1开始(因为表中最小数值为1) (2)i控制第 ...
- 用shell编写小九九乘法表程序
1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo ...
- bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1053 写了个打表程序. #include<iostream> #include& ...
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- BZOJ3798: 特殊的质数(分段打表)
题意 题目链接 Sol 分块打表,非常好的思想. 对于这种求$[A, B]$区间内xxx的数的个数,然后$B$又不算是特别大的题,考虑分段打表 每个块的大小为$10^5$,打$3 * 10^3$个.然 ...
随机推荐
- DLL编写教程
本文对通用的DLL技术做了一个总结,并提供了源代码打包下载,下载地址为: http://www.blogjava.net/Files/wxb_nudt/DLL_SRC.rar DLL的优点 简单的 ...
- mysql 定义自增
The database returned no natively generated identity value问题 alter table user_table MODIFY user_id I ...
- 十天冲刺---Day7
站立式会议 站立式会议内容总结: 燃尽图 照片 两个人编码其实效率挺高的.但是在一些方面,比如说页面UI的编写,会非常吃力,很难达到自己的效果. 由于埋头在编码,所以issues的增加随之停止. 有点 ...
- 给li设置float浮动属性之后,无法撑开外层ul的问题。(原址:http://www.cnblogs.com/cielzhao/p/5781462.html)
最近在项目中有好几次遇到这个问题,感觉是浮动引起的,虽然用<div style="clear:both"></div>解决了,但自己不是特别明白,又在网上查 ...
- 转 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...
- Jenkins的maven工程打包的时候怎么指定不同环境的配置文件
http://outofmemory.cn/code-snippet/6643/maven-profile-define-enviroment-package 在打包的时候我们添加上 这里我们指定配置 ...
- [转]PL/SQLDeveloper导入导出Oracle数据库方法
原文地址:http://www.2cto.com/database/201405/305452.html 1.Oracle数据库导出步骤 1.1 Tools→Export User Objects.. ...
- SVN_限制注释长度
一.说明 svn服务器上每个项目都会有单独一个文件夹,文件夹下有一个hooks文件夹,可以在pre-commit添加内容限制注释输入 项目t1的下的hooks文件夹 二.操作步骤 注意:修改的 ...
- lucene-查询query->QueryParser
对于搜索引擎(比如Google和百度)来讲,很多情况下只需要用户在输入框内输入所需查询的内容,然后再单击“搜索”就可以了,其余的事情全部交给搜索引擎去处理,最后搜索引擎会把检索到的结果显示出来.那么搜 ...
- mssql-异常value '0000-00-00' can not be represented as java.sql.Date
Mysql开发中采用ResultSet取值時,不管是才用getString()还是用getDate(),或者getObject,均会拋出如题所述异常.查阅Mysql官方Bug咨询: 是因为日期型(Da ...