当前位置: 代码迷 >> 综合 >> poj 3372 Candy Distribution 数论
  详细解决方案

poj 3372 Candy Distribution 数论

热度:23   发布时间:2024-01-19 05:26:31.0

题意:

设f(x)=(x+1)*x/2mod(n),问f(x)是否可以构成n的一个完全剩余系。

分析:

网上很多证明一开始就说f(x)的周期为n,这是不对的。当n是奇数时f(x)周期T=n,当n为偶数时T=2*n,f(x+n)=f(x)+n/2。依据这3个性质可推出f(x)可以构成n的一个完全剩余系的充要条件是n是2的正整数数幂。

代码:

//poj 3372
//sep9
#include <iostream>
using namespace std;int main()
{int n;while(scanf("%d",&n)==1){puts((n&(n-1))?"NO":"YES");}	return 0;
} 


  相关解决方案