数论-完全平方数的一些小性质

完全平方数的判定:

  1. 偶指奇因:

    • 分解质因数后质因数的指数都是偶数
    • 因数的个数有奇数个。
  2. 平方数的末尾
    0、1、4、5、6、9

  3. 平方数的余数
    image

  4. 平方差的特征

a2b2=(a+b)(ab)

a+bab

XY=

(a+b)(ab)=2b

相邻两个数的平差差是相邻两个数的和
image

P9231 [蓝桥杯 2023 省 A] 平方差
思路就是上面平方差的特征:
再用一个前缀和的小优化即可

#include <bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define fep(i, a, b) for(int i = (a); i >= (b); --i)
#define _for(i, a, b) for(int i=(a); i<(b); ++i)
#define pii pair<int, int>
#define pdd pair<double,double>
#define ll long long
#define db double
#define fs first
#define sc second
#define pb push_back
#define vi vector<int>

using namespace std;
int getji(int x){
	if(!x)	return 0;
	return (x+1)/2;
}
int getsi(int x){
	return x/4;
}

void solve() {
	int l,r;
	cin>>l>>r;
	cout<<getji(r)-getji(l-1)+getsi(r)-getsi(l-1)<<'\n';
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
//	freopen("1.in", "r", stdin);
	solve();
	return 0;
}

G. Garage
35(789)(111213)(151617)
4k14k4k+1

#include <bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define fep(i, a, b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define ll long long
#define db double
#define fs first
#define sc second
#define pb push_back
#define vi vector<int>
 
using namespace std;

int f(int n){
	if(n==1)	return 3;
	if(n==2)	return 5;
	n-=2;
	int ans=(n/3+(n%3!=0)+1)*4;
	if(n%3==0)	ans++;
	if(n%3==1)	ans--;
	return ans;
}

void solve() {
	int n;
	cin>>n;
	cout<<f(n)<<'\n';
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
//	freopen("1.in", "r", stdin);
	solve();
	return 0;
}
posted @   cxy8  阅读(503)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示