非官方题解
2025-04-08 18:23:28
发布于:北京
13阅读
0回复
0点赞
上来我就看见了“约数”二字,我们直接手搓一个函数:
def is_cd (x, y):
return y % x == 0
这个函数用来判断一个数是不是另一个数的约数。
接下来,我用一个变量来记录当前的 形图
:
num = 17
因为在 i == 0
的时候是没有 形图
的,所以我把他设成了大于 13
且最小的质数。
循环部分:
for i in range (n):
if i != 0 and is_cd (a[i], num):
cnt += 1
#print (i, num, end = ' ')
#print ()
num = a[i]
这里我发现了一个小问题,如果 a[0] == 1
的话,cnt
就会多一,所以我直接写了一个特判。
最后记得输出 cnt
。
Python Code:
def is_cd (x, y):
return y % x == 0
n = int (input ())
a = list (map (int, input ().split ()))
num = 17
cnt = 0
for i in range (n):
if i != 0 and is_cd (a[i], num):
cnt += 1
#print (i, num, end = ' ')
#print ()
num = a[i]
print (cnt)
C++ Code:
#include <bits/stdc++.h>
const int N = 2e5 + 10;
bool is_cd (int x, int y)
{
return y % x == 0;
}int main ()
{
//main;
int n; std::cin >> n;
int a[N] {};
for (int i = 0; i < n; ++ i)
std::cin >> a[i];
int num = 17, cnt = 0;
for (int i = 0; i < n; ++ i)
{
if (i >= 1 and is_cd (a[i], num))
cnt ++;
num = a[i];
}std::cout << cnt << std::endl;
return 0;
}
这里空空如也
有帮助,赞一个