BJTU 数学
来源:互联网 发布:广州汇丰软件 编辑:程序博客网 时间:2024/05/22 13:37
Description
懒羊羊是一只非常能吃的羊,它在青青草原上发现一块巨大的正方形草地,但灰太狼已经抢先一步在草地下布上了若干陷阱,正方形草地位于直角坐标系中,左下角坐标为(1,1),右上角坐标为(m,m),草地内只有整数坐标点上才长有青草,懒羊羊发现,对于一棵坐标为(x,y)处的青草,只有(x*y) Mod m>0时,草旁边才有一个陷阱,Mod为取余数
聪明的你是否能帮懒羊羊算一算,这块草地上共有多少陷阱。
Input
输入的第一行为一个正整数T(T<=50),表示测试数据的组数,接下来是T行测试数据,每行中有一个整数m(m<=100000)。
Output
对于每一组测试数据,输出一行"Case id: M",表示从第id组测试数据结果为,id从1开始。
Sample Input
5
1
3
4
6
1403
Sample Output
Case 1: 0
Case 2: 4
Case 3: 8
Case 4: 21
Case 5: 1962964
懒羊羊是一只非常能吃的羊,它在青青草原上发现一块巨大的正方形草地,但灰太狼已经抢先一步在草地下布上了若干陷阱,正方形草地位于直角坐标系中,左下角坐标为(1,1),右上角坐标为(m,m),草地内只有整数坐标点上才长有青草,懒羊羊发现,对于一棵坐标为(x,y)处的青草,只有(x*y) Mod m>0时,草旁边才有一个陷阱,Mod为取余数
聪明的你是否能帮懒羊羊算一算,这块草地上共有多少陷阱。
Input
输入的第一行为一个正整数T(T<=50),表示测试数据的组数,接下来是T行测试数据,每行中有一个整数m(m<=100000)。
Output
对于每一组测试数据,输出一行"Case id: M",表示从第id组测试数据结果为,id从1开始。
Sample Input
5
1
3
4
6
1403
Sample Output
Case 1: 0
Case 2: 4
Case 3: 8
Case 4: 21
Case 5: 1962964
解法:for两次过去超时不用想,既然x*y%m==0,那么就是x*y=k*m,所以两边同时除以gcd(x,m),那么只要再找到含有m/gcd(x,m)因子的y,就可以了,最后算出一列中有多少个y的倍数即可。
#include<iostream>#include<algorithm>using namespace std;typedef long long ll;int main(){ ll t,n,i,j,sum,cas=1; cin>>t; while(t--){ cin>>n; sum=0; for(i=1;i<=n;i++){ ll f=__gcd(n,i); f=n/f; sum+=n/f; } cout<<"Case "<<cas++<<": "<<n*n-sum<<endl; } return 0;}
0 0
- BJTU 数学
- 【BJTU+求和+线段树】
- BJTU 1688 Quartz的宝藏
- BJTU 1703 Ficer的春运 (DFS)
- BJTU 1687 lisp的解释器
- HDU/HDOJ 3923 2011 BJTU多校联合 波利亚原理
- BJTU 1729 Ryan的弹幕游戏(BFS)
- 【BJTU+A simple problem+异或+数位DP】
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 数学
- 优雅的创建一个相册管理类(兼容AssetsLibrary和PhotoKit)
- xcode提交版本时提示The working copy "MyPro" failed to commit files.解决方法
- java注解
- HDU 1001 Can you solve this equation?
- 数值算法
- BJTU 数学
- zoj 3946Highway Project(最短路改)
- 使用MobAPi获得天气数据
- 说说中断上下文的切换
- java.util包---LinkedHashMap
- UVA_10020_Minimal coverage
- Java编程基础--空指针异常
- 趣味素数-平方回文素数-java
- 树的存储结构