题目



解题思路


/* 因为数据量是1e6,所以O(n)时间复杂度可以解决 */

代码


#include<iostream>
#include<stdio.h>
using namespace std;
typedef long long ll;
int main()
{
    int A,P;
    scanf("%d%d",&P,&A);
    ll sum;
    bool flag = false;
    for(int x=0; x<=P; ++x)
    {
        sum = (ll)x*x; //注意这里一定要强转,第二次在这上面犯错了
        if(sum % P == A)
        {
            printf("%d ",x);
            flag = true;
        }
    }
    if(!flag)
        printf("No Solution");
    return 0;
}