lightoj1336,约数求和+等比数列求和

acwing:约数之和
(n)=(p10+p11+....+p1a1)*.....*(pk0+pk1+....+pkak)————————1
等比数列求和  =————————————2
只有保证没个乘项都是奇数才可能是奇数,如果有一个偶数则结果是偶数;
如果没2,其他质数都是奇数,所以要保证每项除第一个是1外其他数相加为偶数,由式子1就要有偶个其余项,则a为偶;——n^2
如果有2,不仅要满足上述条件还要满足:p=2的那项必须为奇数,由式子2,可知p=2那项分子始终为奇,分母为1;——2*n^2
终上所述:n^2,2*n^2满足要求
所以输入num,
1到n代入得到n^2或2*n^2的数满足要求,他们有sqrt(num)和sqrt(num/2)个;
num-奇数=偶数的
#include <bits/stdc++.h>

using namespace std;

long long t,n;

int main(int argc, char** argv) {
	cin>>t;
	for(int i=1;i<=t;i++){
		cin>>n;
		printf("Case %lld: %lld\n",i,n-(int)sqrt(n)-(int)sqrt(n/2));
	}
	return 0;
}

全部评论

相关推荐

牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务