hdoj3501Calculation 2【欧拉函数】
来源:互联网 发布:无绳跳绳 知乎 编辑:程序博客网 时间:2024/05/19 14:54
Calculation 2
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3085 Accepted Submission(s): 1272
Problem Description
Given a positive integer N, your task is to calculate the sum of the positive integers less than N which are not coprime to N. A is said to be coprime to B if A, B share no common positive divisors except 1.
Input
For each test case, there is a line containing a positive integer N(1 ≤ N ≤ 1000000000). A line containing a single 0 follows the last test case.
Output
For each test case, you should print the sum module 1000000007 in a line.
Sample Input
340
Sample Output
02
题意求与N不互质的数的和;
欧拉函数性质;与N互质的数的和为N*eular(N)/2;1~N的总和为N*(N-1)/2
#include<cstdio>#include<cstdlib>#include<cstring>#define MOD 1000000007using namespace std;long long Eular(long long n){long long ret=1,i;for(i=2;i*i<=n;++i){if(n%i==0){n/=i;ret*=i-1;while(n%i==0){n/=i;ret*=i;}}}if(n>1)ret*=n-1;return ret;}int main(){long long n;while(scanf("%lld",&n),n){long long ans=n*(n-1)/2;printf("%lld\n",(ans-n*Eular(n)/2)%MOD);}return 0;}
0 0
- hdoj3501Calculation 2【欧拉函数】
- Calculation 2 欧拉函数的应用
- hdu3501 Calculation 2 欧拉函数
- hdu-Calculation 2(欧拉函数)
- 【欧拉函数】 HDOJ 3501 Calculation 2
- HDU3501 Calculation 2(欧拉函数推广)
- HDU3501 Calculation 2 【欧拉函数】
- hdoj 3501 Calculation 2 【欧拉函数】
- hdoj 3501 Calculation 2(欧拉函数)
- HDU 3501 alculation 2 【欧拉函数】
- HDU 3501-Calculation 2(欧拉函数)
- hdoj-3501-Calculation 2-欧拉函数
- hdu3501 Calculation 2 欧拉函数
- Calculation 2-欧拉函数的运用
- 欧拉函数 hdu3501 Calculation 2
- HDU 3501 Calculation 2(欧拉函数)
- 欧拉函数之HDU3501 Calculation 2
- 【HDU 3501 Calculation 2】+ 欧拉函数
- 利用归并排序求逆序对
- python 列表生成式、lower()和upper()的使用
- atlassian JIRA 插件开发(六) — JIRA系统的插件体系,总体一瞥
- 自定义视图
- 敬业与乐业
- hdoj3501Calculation 2【欧拉函数】
- Stanford机器学习---第十讲. 数据降维
- 百练2775 九度 1114
- 1058. A+B in Hogwarts (20)
- 搭建web项目结合spring+cxf的webservice服务
- 软件设计师考点之--软件设计模型和排序算法
- 序列加密
- 【年总】——因为坚持平凡,所以不平凡
- Ubuntu 下使用minicom 的配置过程