B3828 40分求助!
查看原帖
B3828 40分求助!
1062687
Aiden604楼主2024/7/27 10:31

后六个点WA,不知道怎么办:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=998244353;
int v[155];
void prime(int n){//埃氏筛
	for(int i=2;i<=n;i++){
		if(v[i]==0){
			for(int j=i;j<=n/i;j++) v[i*j]=1;
		}
	}
}
int l,r,ans=1;
signed main(){
	cin>>l>>r;
	prime(150);//因为x的数位之和最多是9*12,所以只用到大约150即可
	for(int i=ceil(sqrt(l));i<=floor(sqrt(r));i++){//i是L到R之间的完全平方数的平方根
		int num=i*i;
		int t=num;
		int sum=0;
		while(t){
			sum+=t%10;
			t/=10;
		}
		if(v[sum]==0) ans*=num;
		ans%=mod;
	}
	if(ans==1) cout<<0;
	else cout<<ans;
	return 0;
} 

QWQ

2024/7/27 10:31
加载中...