hdu 2619 Love you Ten thousand years(数论,待解决)
来源:互联网 发布:淘宝店铺首页链接地址 编辑:程序博客网 时间:2024/05/29 15:55
Love you Ten thousand years
Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 92 Accepted Submission(s): 34
Problem Description
Love you Ten thousand years------Earth's rotation is a day that is the representative of a day I love you. True love, there is no limit and no defects. Earth's revolution once a year, it is on behalf of my love you more than a year. Permanent horizon, and my heart will never change ……
We say that integer x, 0 < x < n,(n is a odd prime number) is a LovePoint-based-on n if and only if the set { (xi mod n) | 1 <= i <= n-1 } is equal to { 1, ..., n-1 }. For example, the powers of 3 modulo 7 are 3, 2, 6, 4, 5, 1, and thus 3 is a LovePoint-based-on 7.
Now give you a integer n >= 3(n will not exceed 231).
We say the number of LovePoint-based-on n is the number of days the earth rotating.
Your task is to calculate the number of days someone loved you.
We say that integer x, 0 < x < n,(n is a odd prime number) is a LovePoint-based-on n if and only if the set { (xi mod n) | 1 <= i <= n-1 } is equal to { 1, ..., n-1 }. For example, the powers of 3 modulo 7 are 3, 2, 6, 4, 5, 1, and thus 3 is a LovePoint-based-on 7.
Now give you a integer n >= 3(n will not exceed 231).
We say the number of LovePoint-based-on n is the number of days the earth rotating.
Your task is to calculate the number of days someone loved you.
Input
Each line of the input contains an integer n. Input is terminated by the end-of-file.
Output
For each n, print a single number that gives the number of days someone loved you.
Sample Input
5
Sample Output
2
完全不是夜深人静写算法里面说的找规律,后来人如果发现另外的解法或者此种解法的缘由,还望指点。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;#define LL long longint vis[100];LL get(LL n){ LL ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0) n/=i; } } if(n>1) ans=ans/n*(n-1); return ans;}int main(){ LL m; while(scanf("%lld",&m)!=EOF) { printf("%lld\n",get(get(m))); } return 0;}
0 0
- hdu 2619 Love you Ten thousand years(数论,待解决)
- HDU 2619 - Love you Ten thousand years (数论)
- HDU 2653 Waiting ten thousand years for Love
- HDU 2653 Waiting ten thousand years for Love
- HDU 2653Waiting ten thousand years for Love
- Waiting ten thousand years for Love
- Hdu 2579 Dating with girls(2) && hdu 2653 Waiting ten thousand years for Love【Bfs】
- hdoj 2653 Waiting ten thousand years for Love(优先队列+BFS)
- HDU2653 Waiting ten thousand years for Love (三维广搜+优先队列)
- (待解决)hdu 1241 非常可乐 (数论~)
- Concurrent Ten Thousand Connections.
- A thousand years
- hdu 1214 圆桌会议 数论 How strong I want to love you again!
- Ten years. One vision
- 十年,ten years
- The Recent Ten Years
- lessen ten years
- 十年 Ten years
- java 类的继承和多态 1
- 手机开发实战118——蓝牙介绍2
- 深入学习java并发编程:内存模型(五)锁
- 手机开发实战119——蓝牙介绍3
- Matlab画图,去掉周围白边
- hdu 2619 Love you Ten thousand years(数论,待解决)
- 手机开发实战120——蓝牙介绍4
- 剑指offer(五十三)之按之字形顺序打印二叉树
- java/android 设计模式学习笔记(9)---代理模式
- 手机开发实战121——蓝牙介绍5
- java设计模式详细描述(部分源代码)
- java中的事务
- 好用的第三方网站ios
- java 类的继承和多态 2