洛谷B3828优秀正整数
现在是AC的正确答案
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main(int argc,char*argv[])
{
long long int i,j,k,a,b,c,m,n,p=1,x,y,z,L,R,M,N,s;
scanf("%lld %lld",&L,&R);
for(i=sqrt(L);i<=sqrt(R);i++)
{
x=i*i;//先确定优秀正整数肯定能开平方
if(x<L) continue;
s=0;
while(x>0)
{
s=s+(x%10);//s求个位数字之和
x/=10;
}
for(j=2;j<=sqrt(s);j++)
{
if(s%j==0) break;
}//判断s是不是质数
if(j>sqrt(s))
{
p=(p*((i*i)%998244353))%998244353;
}
}
if(p==1) printf("0");
else printf("%lld",p);
return 0;
}