记录详情

Time Exceeded


  
# 状态 耗时 内存占用
#1 Accepted 840ms 118.465 MiB
#2 Accepted 845ms 117.566 MiB
#3 Accepted 844ms 117.625 MiB
#4 Accepted 848ms 118.0 MiB
#5 Accepted 842ms 117.609 MiB
#6 Time Exceeded ≥1002ms ≥117.625 MiB
#7 Time Exceeded ≥1006ms ≥117.625 MiB
#8 Time Exceeded ≥1007ms ≥117.699 MiB
#9 Time Exceeded ≥1003ms ≥118.125 MiB
#10 Accepted 878ms 117.734 MiB

代码

#include<iostream>
#include<cstdio>
#include<cmath>
#define Ll long long
using namespace std;
const int M=1e8;
int q[6000000],tot;
bool com[M+5];
void findcom(){
    com[1]=1;
    for(int i=2;i<=M;i++){
        if(!com[i]){q[++tot]=i;}
        for(int j=1;j<=tot;j++){
            if(i*q[j]>M)break;
            com[i*q[j]]=1;
            if(i%q[j]==0)break;
        }
    }
}

int n,mo=1000000007,x;
Ll ans;

Ll ksm(int x,int y){
	Ll ans=1;
	while(y>0){
		if(y&1)ans=(ans*x)%mo;
		y=y>>1;
		x=(x*x)%mo;
	}
	return ans;
}
int main(){
    findcom();
    scanf("%d",&n);
    ans=1;
    for(int i=1;i<=tot;i++){
    	x=q[i];
    	if(x>n)break;
    	int y=log(n)/log(x);
    	ans=(ans*ksm(x,y))%mo;
    }
    printf("%lld",ans);
}

信息

递交者
类型
递交
题目
篝题
语言
C++
递交时间
2017-05-02 10:43:46
评测时间
2017-05-02 10:43:46
评测机
分数
60
总耗时
≥9120ms
峰值内存
≥118.465 MiB