链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
yyjj 有一个长度为 n 的非负整数序列 {ai} ,她很想知道 a 中第一个元素的值是多少,但是她视力太差了看不清,于是向一旁的 jbgg 求助。
jbgg 很坏,他不想直接告诉 yyjj 数组各个元素的值,而是报给了她一个长度同样为 n 的序列 {bi} ,bi 为 a 中下标为 i 的倍数的元素的和。
yyjj 正要推出答案,就因为忘喝咖啡睡着了。你能替 yyjj 想出答案让她一醒来就能知道 a中第一个元素的值吗?
⌊⌋ 为向下取整符号,如:⌊4/3⌋=1。输入描述:
第一行一个正整数 n(1⩽n⩽105)。 第二行 n 个整数 b1,b2,⋯,bn(0⩽bi⩽1012)。输出描述:
一个整数,表示 a 中第一个元素的值示例1
输入
6 16 6 6 4 1 1输出
4说明
原序列 aa是 {4,1,5,4,1,1}。
示例2
输入
7 29 19 17 9 1 9 1输出
0
首先,n/2后面的是多少,就是多少,因为他的倍数只有它本身,他前面的就暴力求就OK了
#include <iostream>
using namespace std;
int main(){
int t;
long long b[100010];
scanf("%d",&t);
for(int i=1;i<=t;i++){
scanf("%lld",&b[i]);
}
for(int i=t/2;i>=1;i--){
for(int j=i*2;j<=t;j+=i){
b[i]-=b[j];
}
}
printf("%lld",b[1]);
}