话说, 小X是个数学大佬,他喜欢做数学题。有一天,小X想考一考小Y。他问了小Y一道数学题。题目如下:
对于一个正整数N,存在一个正整数T(0<T<N),使得
的值是正整数。
小X给出N,让小Y给出所有可能的T。如果小Y不回答这个神奇的大佬的简单数学题,他学神的形象就会支离破碎。所以小Y求你帮他回答小X的问题。
标签:ips .com xtu esc ase sqrt aaa 答案 aos
Sample Input1: 1 Sample Input2: 3 Sample Input3 180
Sample Output 0 Sample Output 1 2 Sample Output 5 120 144 160 168 176
经过变式之后原式变成了,我们要使的K是一个正整数,那么我们只需要让2K-1是N的因数。算出所有的因数,然后排一个序,输出就可以了。
1 #include<cstdio> 2 #include<cmath> 3 #include<algorithm> 4 using namespace std; 5 int m,l; 6 long long n,d[10000]; 7 int main() 8 { 9 scanf("%lld",&n); 10 for (int i=1;i<=(int)sqrt((double)n);i++) 11 if (n%i==0) 12 { 13 if (i%2!=0&&i!=1) 14 d[++l]=i; 15 if ((n/i)%2!=0&&(n/i)!=1) 16 d[++l]=n/i; 17 } 18 printf("%d ",l); 19 sort(d+1,d+l+1); 20 for (int i=1;i<=l;i++) 21 { 22 long long r=n/d[i]; 23 r=r*(d[i]-1); 24 printf("%lld ",r); 25 } 26 }
标签:ips .com xtu esc ase sqrt aaa 答案 aos
原文地址:https://www.cnblogs.com/Tokisaki-Kurumi/p/9477905.html