0
点赞
收藏
分享

微信扫一扫

蓝桥每日真题之小平方

祈澈菇凉 2022-01-20 阅读 35

题目来源

2021年蓝桥省赛第二场G题

题目链接:http://acm.mangata.ltd/p/P1164

考点

暴力枚举

视频讲解

视频连接:https://www.bilibili.com/video/BV11q4y1k7Dm/

思路

我们只需要从1枚举到n-1,你然后在枚举的过程中计算一下当前位置的平方,然后再对n取模,如果余数是小于n的一半那么我们就记录下来,否则我们就不记录,最后输出我们记录的个数即可

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000009
#define endl "\n"
#define PII pair<int,int>

int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};

ll ksm(ll a,ll b) {
	ll ans = 1;
	for(;b;b>>=1LL) {
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
	}
	return ans;
}

ll lowbit(ll x){return -x & x;}

const int N = 2e6+10;
//----------------自定义部分----------------
int n,m,q,a[N];

int main()
{
	cin>>n;
	int ans = 0;
	for(int i = 1;i < n ; ++i) {
		int x = (i * i % n) * 2;
		if(x < n) ans++;
	}
	cout<<ans<<endl;
	
	return 0;
}
举报

相关推荐

0 条评论