LightOJ
来源:互联网 发布:视频会议软件哪个好 编辑:程序博客网 时间:2024/06/10 03:13
题目链接:https://cn.vjudge.net/problem/LightOJ-1370
题意:给出n个数的欧拉值,求这n个数的和的最小值。
欧拉函数:在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。
性质:
欧拉函数是积性函数——若m,n互质,
特殊性质:当n为奇数时, , 证明与上述类似。
若n为质数则
相邻两个素数之间合数的欧拉值都小于较小素数的欧拉值。不会证明。。。
所以只要找到大于并且最接近这个数的素数就好了。
代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define MAX_N 2000000int prime[MAX_N/2];bool is_prime[MAX_N+1];void sieve(int n){ int p = 0; memset(is_prime,true,sizeof(is_prime)); is_prime[0] = is_prime[1] = false; for(int i = 2; i <= n/2; i++) { if(is_prime[i]) prime[p++] = i; for(int j=0; j<p && prime[j]*i<=n; j++) { is_prime[prime[j]*i]=false; if(i%prime[j]==0) break; } }}int main(){ int t; sieve(MAX_N); scanf("%d",&t); for(int tt=1;tt<=t;tt++) { int n; scanf("%d",&n); long long sum=0; while(n--) { int x; scanf("%d",&x); for(int i=x+1;;i++) { if(is_prime[i]) { sum+=i; break; } } } printf("Case %d: %lld Xukha\n",tt,sum); } return 0;}
阅读全文
0 0
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- 变量
- Linux和Windows学习日记5
- WINDOWS API ——CREATEMUTEX——创建互斥对象(转)
- rails配置报错邮件告警最最简单例子
- Android ListView笔记
- LightOJ
- JavaScript中String类型的方法
- maven install时Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test
- SpringMvc 中全局异常处理
- 端口被占用解决办法
- 通过AsyncTask异步获取网络图片
- java调用js
- SQL自定义函数
- shell脚本判断当前用户是否为root(学习笔记一)