目录
除法2
tax
约数个数
约数之和
全部相同
石头剪刀布
模数
余数之和
数树
除法
除法2
黄金时间限制:1秒占用内存: 128 M难度:
给定n,求 ”i*[n/],[] 表示对 取下整
格式
一个正整数n。输入格式:
输出格式:一个数表示答案
样例1
输入:4
输出:15
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,ans;
signed main(){
cin >>n;
for (int l = 1,r;l <= n;l =r+1) {
r = n / (n / l);
ans += (r - l + 1) * (n / l) * (l + r) / 2;
}
cout <<ans;
return 0;
}
tax
难度:钻石四占用内存:128M时间限制: 1秒
小码哥要交税,交的税钱是收入 n 的最大因子(该最大因子为不等于 的最大因子),但是现在小码哥为了避税,把钱拆成几份(每份至少为2),使交税最少,输出税钱。
格式
输入格式:一个正整数n表示所有的钱数
输出格式:输出一个正整数,表示税钱。
样例1
输入:4
输出:2
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int n;
bool prime(int num) {
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
int main(){
cin >>n;
if (prime(n))
cout <<1;
else if (n%2 == 0)
cout <<2;
else if(prime(n-2))
cout <<2;
else
cout <<3;
return 0;
}
约数个数
难度: 黄金时间限制: 1秒四占用内存:128M
给出给定正整数n,求n的约数个数
格式
输入格式:一个整数n。
输出格式:输出一行一个整数表示答案
样例1
输入:12
输出:6
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
//int main(){
// int n;
// cin >>n;
// int ans =0;
// for (int i = 1;i*i<=n;i++) {
// if (n % 1 == 0)
// ans += 2;
// if (i * i == n)
// ans--;
// }
// cout << ans;
// return 0;
// }
int main(){
int n;
cin >>n;
int ans = 1;
for (int i=2;i*i<=n;i++){
int tmp =0;
while(n % i == 0)
tmp++,n /= i;
ans *= (tmp+1);
}
if(n!=1)
ans *= 2;
cout <<ans;
return 0;
}
约数之和
难度:黄金时间限制: 1秒四占用内存:128M
给出给定正整数n,求n的约数之和。
格式
输入格式:一个整数n。
输出格式:输出一行一个整数表示答案。
样例1
输入:12
输出:28
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >>n;
int ans = 1;
for (int i=2;i*i<=n;i++){
int tmp = i;
while (n %i==0)
tmp *=i,n /=i;
ans*=(tmp-1)/(i-1);
}
if(n!=1)
ans*=(n+1);
cout << ans;
return 0;
}
全部相同
难度:黄金时间限制: 1秒四占用内存:128M
小码哥有一个 n 个整数组成的数组 a1,a2,...,an 。小码哥可以任取一个正整数 k 进行下面的操作:从数列中取一个数 ai,将它的值减去 。小码哥进行了若次(可能是次)上面的操作后,数列中所有的数都相等了。请你找到 k 可能的最大值。
格式
输入格式:多组输入,第一行包含一个整数 t(1<t 104),代表测试样例组数;下面 2t 行,每2行一组,每组第一行为数列的长度n(4<n<40); 第二行n 个整数 a1,a2,...,an (-10 < ai<10 )。
输出格式:对于每组输入输出一行 的最大值 (如果 可以任意大,输出-1)。
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int t,n,a[47];
int gcd(int a,int b){return b ==0 ? a : gcd(b,a%b);}
int main(){
cin >>t;
while (t--) {
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
// void std::sort(_RAIter,_RAIter)
sort(a, a + n);
for (int i = 1; i < n; i++)
a[i] -= a[0];
if (a[n - 1] == 0) {
cout << -1 << endl;
break;
}
int ans = gcd(a[1], a[2]);
for (int i = 3; i < n; i++)
ans = gcd(ans, a[i]);
cout << ans << endl;
}
return 0;
}
石头剪刀布
难度:黄金时间限制:1秒占用内存: 128 M
每个人都会按照一个周期出石头,剪刀有两个人在玩石头剪刀布游戏: R-石头 P-布 S-剪刀,双方各输了多少次。或布。 周期肯定在1099以内 (包括109)问玩 n 把后,
格式
输入格式: 输入第一行一个n (1<n<2*109),n为玩了几把;第2行为第一个人的周期规律
第3行为第二个人的周期规律.
输出格式:输出共2个数:第一个人输的次数和第二个人输的次数
样1
输入:7
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int n,loseS,loseT;
string s,t;
int gcd(int a,int b){return b ==0 ? a : gcd(b,a % b);}
int lcm(int a,int b){return a * b/gcd(a,b);}
void iswin(int a,int b){
if (s[a]=='R'&&t[b]=='S')
loseT++;
if(s[a]=='S'&&t[b]=='R')
loseS++;
if(s[a]=='S'&&t[b]=='P')
loseT++;
if(s[a]== 'P'&&t[b]=='S')
loseS++;
if (s[a]=='P'&&t[b]=='R')
loseT++;
if (s[a]=='R'&&t[b]=='P')
loseS++;
}
int main() {
cin >> n >> s >> t;
int lens = s.length(), lent = t.length();
int cycle = lcm(lens, lent);
for (int i = 0; i < cycle; i++)
iswin(i % lens, i % lent);
loseS *= n / cycle, loseT *= n / cycle;
for (int i = 0; i < n % cycle;i++)
iswin(i % lens, i % lent);
cout << loseS<<' ' << loseT <<endl;
return 0;
}
模数
难度:黄金时间限制: 1秒巴占用内存:128M
现在小码哥给定两个整数 a,b,问有多少个 2 ,使得满足等式a mod a =b,如果存在无限个,就输出“infinity”,否则输出满足条件2的个数。
格式
输入格式:两个数a,
输出格式:输出个数或“infinity”
样例1
输入:21 5
输出:2
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int a,b,ans;
int main() {
cin >> a >> b;
if (a == b) {
cout << "infinity" << endl;
return 0;
}
if (a < b) {
cout << 0 << endl;
return 0;
}
a -= b;
for (int i = 1; i * i <= a; i++) {
if (a % i == 0) {
if (i > b)
ans++;
if (a / i > b && a / i != i)
ans++;
}
}
cout << ans << endl;
return 0;
}
余数之和
难度:黄金时间限制: 1秒四占用内存:128M
你上次很轻松的解决了小码哥的问题,这让小码哥觉得很没面子,于是他又想了一个更加复杂的问题来考你。
小码哥给你两个正整数n和f,计算judge(n,f)=f % 1+ f % 2+ f %3 + .. + f %n的值,其中f % i表示f除以i的余数。
格式
输入格式:输入仅一行,包含两个正整数 nf
输出格式: 输出仅一行,即 judge(n,f)
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,f,ans,temp;
signed main(){
cin >>n >>f;
if (n>f){
temp = (n - f)* f;
n = f;
}
for(int l=1,r;l<=n;l=r+1){
r=min(f/(f/l),n);//这里其实蕴含了n<f的处理情况
ans+=(r-l+1)*(f/l)*(l+r)/2;
}
cout <<n * f - ans + temp;
return 0;
}
数树
难度:黄金时间限制: 1秒四占用内存:128 M
在卡兹戴尔有一片很奇怪的森林,在一个直角坐标系内的(a,)坐标值都为自然数的坐标上都有颗树,如果一棵树的坐标 (a,) 与原点(0,0) 的连线中没有通过其他任何树,则称该树在原点处是可见的。
例如,树 (4.2)就是不可见的,因为它与原点的连线会通过树 (21)。部分可见点与原点的连线如下图所示,如图是一个 4 x 4 的树林
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
int c,n;
int gcd(int a,int b){return b ==0 ? a :gcd(b,a % b);}
int main(){
cin >>c;
for (int i=1;i<=c;i++){
cin >>n;
int ans =0;
for (int j=1;j <= n;j++)
for(int k=1;k<=n;k++)
if(gcd(j,k)== 1)
ans++;
cout <<i<<" "<<n <<" "<<ans + 2 <<endl;
}
return 0;
}
除法
难度:黄金时间限制:1秒占用内存: 28 M
给定几,求”in/i, 2表示对 a 取下整
格式
输入格式:一个正整数n。
输出格式:一个数表示答案
样例 1
输入:4
输出:8
//
// Created by abner on 2023/9/13.
//
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,ans;
signed main(){
cin >>n;
for (int l=1,r;l <= n;l=r+1) {
r = n / (n / l);
ans += (r - l + 1) * (n / l);
}
cout <<ans;
return 0;
}
如果 ChatGPT 停机或正在维护,可能会出现多个错误、故障或漏洞,包括请求过多。所以,去检查服务器状态是否正常。只需访问页面 并查看 OpenAI 的状态。绿色条表示状态是完全可操作的。如果您看到红色、橙色或浅绿色线条,则说明发生了中断,您只需等待 ChatGPT 团队修复即可。