joj 2330: Math
来源:互联网 发布:php常用算法有哪些 编辑:程序博客网 时间:2024/06/08 17:24
Given a nonnegative integer a, and a positive integer N, we define:
f(a, 1) = a
f(a, k) = f(a, k – 1) * f(a, k – 1) % N, k > 1
There may or may not exist some positive integer k satisfying f(a, k) = 0.
Your task is, given a positive integer N, to determine how many a (0 <= a <= N) there are, such that for some positive integer k, f(a, k) = 0.
f(a, 1) = a
f(a, k) = f(a, k – 1) * f(a, k – 1) % N, k > 1
There may or may not exist some positive integer k satisfying f(a, k) = 0.
Your task is, given a positive integer N, to determine how many a (0 <= a <= N) there are, such that for some positive integer k, f(a, k) = 0.
Input
The input contains an integer T on the first line, indicating the number of test cases. Each test case contains only one positive integer N (1 <= N <= 1000000000) on a line.
Output
For each test case, output the answer on a single line.
Sample Input
621250180245361
Sample Output
2367820/*
最悲剧的一道题,一开用cin,cout来输入输出数据,一直TLE,各种剪枝,各种预处理,都TLE,后来改正scanf,printf坑爹的居然过了。。。
于是果断以后再也不用cin,cout了。
我的代码不算快,有师兄0.05s过的,我的0.09s,有机会膜拜下。
*/
- #include <cstdio>
- #include <iostream>
- #include <memory>
- #include <cmath>
- using namespace std;
- int prime[10000];
- const int maxn=40000;
- int search (int n,int f)
- {
- int m=sqrt(n+0.5);
- for ( int i=f ; prime[i]<=m &&i<8000; i++)
- if(n%prime[i]==0)return prime[i];
- return n;
- }
- int main ()
- {
- int c = 0;
- bool vis[maxn] ;
- memset (vis , 1 ,sizeof(vis));
- for(int i=2; i<220 ; i++)
- if(vis[i])
- {
- for (int j=i*i; j<maxn ; j+=i)
- vis[j]=0;
- }//筛素数
- for (int i=2 ; i<maxn ;i++)
- if(vis[i])
- prime[c++]=i;//将筛出的素数存入数组中
- /* for(int i=0 ; i<50 ; i++)
- cout<<prime[i]<<" ";*/
- int t;
- cin>>t;
- while (t--)
- {
- int n,i=1;
- scanf("%d",&n);
- int nn=n;
- int ans =1;
- int j=0;
- while (n!=1)
- {
- int d=search(n,j++);
- ans*=d;
- while(n%d==0)n=n/d;
- }//找出n的所有素因子(不重复)并保存其积
- ans=nn/ans + 1;
- printf("%d/n",ans);
- }
- return 0;
- }
- joj 2330: Math
- JOJ 2257
- joj 2319
- joj 2653
- JOJ 2687
- joj 2693
- joj 2443
- joj 1173
- joj 1003
- joj 1066
- joj 1182
- joj 1195
- joj 1509
- joj 2526
- joj 2426
- joj 1595
- joj 2346
- joj 1169
- BS环境下Domino服务器的配置过程
- java 时间处理 Date
- [Java] throw Exception 声名抛出异常
- DMIC & HS_MIC
- 跟踪器代码阅读(1)
- joj 2330: Math
- 思维导图学习笔记
- PB从剪贴板取图并保存
- memcache(1)网络模型
- Ext Grid上的单击以及双击事件
- 结对编程
- File System Redirector and Sysnative - how to call 64 bit program from 32 bit application
- Ftrace
- 开心每一天