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$个.然 ...
随机推荐
- Matlab中给figure添加图例(legend),标题(title)和颜色(color)
在Matlab绘图过程中,尤其是需要将多个图绘制在相同的坐标轴中时,通常需要将不同的曲线设置成为不同的颜色.此外,为了直观,还需要给这张图标增添标题和图例.这篇文章展示了在Matlab的绘图窗口(fi ...
- 出现“System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部”错误的解决方案
Sql Server2008数据库在还原时出现如下错误信息:System.Data.SqlClient.SqlError: 尚未备份数据库<数据库名称>的日志尾部.如果该日志包含您不希望丢 ...
- javascript 函数声明与函数表达式的区别
先看一段代码 var f = function g() { return 1; }; if (false) { f = function g(){ return 2; }; } alert(g()); ...
- java中的重绘
void java.awt.Container.validate()Validates this container and all of its subcomponents.这个函数更新容器及其全部 ...
- Python学习教程
Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进.Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地 ...
- ipython又一方便的调试和应用工具!!!
控制台下://ipython 命令丰富 比如:ls 显示目录 ipython --pylab %run -p *.py quit关闭 示例: In []: %run -p test.py H ...
- win7远程桌面连接不上,解决办法
来源于:http://jingyan.baidu.com/article/39810a23edc48bb637fda672.html 一般情况下,对WIN7的远程连接只需要5步即可完成远程连接的设置: ...
- extjs 箱子布局
a.flex 配置项 flex 配置项不是设置在布局上,而是设置在子项的配置项.每个子项相对的 flex 值都会与全体子项 flex 累加的值相比较,根据此结果,处理每个子项的 flex 最后是多少. ...
- 折叠ListView
转自 http://blog.csdn.net/hnyzwtf/article/details/50487228 1 activity_main.xml <?xml version=" ...
- elasticsearch中如何高效的使用filter
这里有一篇很好的文章,很不错,翻译和整理了一下,英文不错的,建议直接看原文:http://euphonious-intuition.com/2013/05/all-about-elasticsearc ...