hdu~4196~素数
来源:互联网 发布:照片后期调色软件 编辑:程序博客网 时间:2024/04/29 15:58
看了题目还好,再看看数据范围,没想法,果断借鉴前辈的思想。
先打素数表,并且将小于等于i的合数之积存于sum[i],计算时统计素数幂数,如果为偶数个将没乘进去的素数加入,否则就不用加入此素数。
ACcode:
#include<stdio.h>#include<iostream>#define LL long long using namespace std;const int size=10000000;const int MOD=1000000007;LL sum[size+10],res;int isprime[size+10],prime[700000];int top=0,n,num,i,j,k;void primetable(){ sum[1]=1; for (i=2;i<=size;i++) { sum[i]=sum[i-1]; if (!isprime[i]) { prime[top++]=i; if (i<=4000) for (j=i*i;j<=size;j+=i) isprime[j]=1; } else sum[i]=(sum[i]*i)%MOD; }}int main(){ primetable(); while (scanf("%d",&n)&&n) { for (res=sum[n],i=0;i<top&&prime[i]<=n/2;i++) { k=n,num=0; while (k>=prime[i]) k/=prime[i],num+=k; if (num%2==0) res=(res*prime[i])%MOD; } printf("%I64d\n",res); } return 0; }
- hdu~4196~素数
- 素数知识——HDU 4196
- 【素数】-HDU-2521-反素数
- HDU 2012 素数判定(素数)
- hdu 1431 素数回文
- hdu 2012 素数判定
- HDU 2012 素数判断
- HDU 4133 反素数
- hdu 1431 素数回文
- HDU-1431-素数回文
- HDU 2521 反素数
- HDU 1164 素数
- hdu 1431 素数回文
- HDU 2012 素数判定
- HDU 1431 素数回文
- HDU-1333(素数分解)
- Hdu 1431 - 素数回文
- HDU 1905 伪素数
- LM3S9B96 刷新问题
- HDU 2296 Ring(AC自动机+DP)
- Strust2文件下载
- 面试题之替换空格
- 我阅读科研文献的一些做法[转]
- hdu~4196~素数
- 整数划分问题
- java中定义常量
- C#获得服务器的信息
- 在Sql Server里通过Sql语句【连接】和【操作】另一个【外地数据库】!
- 海量数据处理面试题集锦
- 最长公共子序列
- php多线程实现方法汇总
- android 数据备份