牛客3402C-最大模数-结论题

链接:https://ac.nowcoder.com/acm/contest/3402/C
来源:牛客网

题目描述:

一次周六新生训练后,一个师妹来找JAJA_Xin。
师妹:“师兄,为什么今天我对面那个师兄那么冷漠。”
JAJA_Xin:“噢你居然还不认识大名鼎鼎的魏队,正常啦,魏队很傲的,因为你们太菜,所以你懂的。”
师妹:“那怎么才能让那个师兄觉得我不菜,你可以帮我去问问吗?”

乐于助人的JAJA_Xin怎么可能拒绝师妹呢,跑去问魏队。
魏队:“简单啊,我出一道题,能做出来就不算很菜了,就出一道数学题吧,简单一点,让他们可以做。”

Ra = [ (a−1)n + (a+1)n ] %a2 ,(n>0)

例如当a=4, n=2时,Ra=32 +52 =34,而34%16 =2,故Ra=2。由于n可以是任意大于0的正整数,所以存在很多Ra的解,找到任意一个Ra就算做出来这道题。例如,当a=4的时候,Ra的取值可以是2或者是8。

“你怎么这么有空还管闲事,不赶紧去补题吗…”,JAJA_Xin被魏队一顿说了之后闷闷不乐,不小心就把原题意记成了要找到最大的Ra才能算做出来这道题,并把修改的题意后和师妹说了,这可难到他们了。例如,当a=4的时候,Ra_max=8。

输入描述:

多测试用例,用例不超过10000个。
每个用例有一行数据,一个整数a (3≤a≤1000000)。

输出描述:

对于每个用例输出一行,Ra_max。

输入样例:

4
7

输出样例:

8
42

核心思想:

结论题
a为奇数,输出a*(a-1)
a为偶数,输出a*(a-2)

代码如下:

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
	ll n;
	while(~scanf("%lld",&n))
		printf("%lld\n",n&1?n*(n-1):n*(n-2));
	return 0;
}

发布了144 篇原创文章 · 获赞 135 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Nothing_but_Fight/article/details/103755735