1
已解决
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main()
{
long long int n,bz=0,sum=0;
long long int m;
cin>>n>>m;
for(int i=n+1;i<=m-1;i++)
{
for(int j=2;j<=sqrt(i);j++)
{
if(i%j==0) bz=1;
}
if(bz==0)
{
sum++;
}
bz=0;
}
cout<<sum<<endl;
}
http://judge.codingtang.com/problem/1586/
30,求解
2
已采纳
首先,区间[x,y)表示的是>=x且<y,你的理解有问题。
然后,中间的判断素数,如果找到因数了,就应该直接退出当前循环(break),可以节省时间。
但是就是这样也只有40分(TLE,超时),所以建议先打牢基础再来做这道题。
0
for (int i=0; i<=1000000; i++) {
bool f=true;
for (int j=1; j<=n; j++) {
if (i%a[j]!=r[j]) {
f=false;
break;
}
}
if (f==true) {
fa=false; cout<<i<<endl; break;
}
}
0
