希望大佬指点 后六个WA 试了一下 和正确代码的有个数据点:(1,1000000000000)答案不一样
#include<stdio.h>
#include<math.h>
const int mod=998244353;
int main(){
signed long long L,R;
scanf("%lld %lld",&L,&R);
signed long long i=L;
signed long long product=1;
int found=0;
for(i=sqrt(L);i<=sqrtl(R);i++){
if(i*i<L)continue;
if(i*i>R)break;
int t=i*i;
int a=t;
long long sum=0;
while(a){
sum+=a%10;
a/=10;
}
long long j=0;
if(sum<2) continue;
for(j=2;j<=sqrtl(sum);j++) if(sum%j==0) goto over;
product=((product%mod)*(t%mod))%mod;
found=1;
over:continue;
}
if(!found) printf("0");
else printf("%lld",product);
return 0;
}