您的答案為: 183 正確答案為: 46
why?:
#include<stdio.h>
int main(void)
{
int i=0,j=0,k=0;
int n=0,m=0,flat=0,true1=0;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n>=1&&n<=m<=100000000)
{
for(i=n;i<=m;i++)
{
for(j=2;j<=8;j++)
{
if(i!=j)
{
if(i%j==0)
{
true1=1;
}
}
}
if(true1==0)
{
flat++;
}
true1=0;
}
printf("%d\n",flat);
flat=0;
true1=0;
}
}
return 0;
}
您的答案為: 183 正確答案為: 46
why?:
#include<stdio.h>
int main(void)
{
int i=0,j=0,k=0;
int n=0,m=0,flat=0,true1=0;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n>=1&&n<=m<=100000000)
{
for(i=n;i<=m;i++)
{
for(j=2;j<=8;j++)
{
if(i!=j)
{
if(i%j==0)
{
true1=1;
}
}
}
if(true1==0)
{
flat++;
}
true1=0;
}
printf("%d\n",flat);
flat=0;
true1=0;
}
}
return 0;
}
1. 題目告知「輸入兩個正整數a,b(1<=a<=b<=100000000)」就不需要再用 if
判斷了 (if(n>=1&&n<=m<=100000000)
用不到)。
2. 用來判斷某數 (以你的 code 是 i
) 的數 (以你的 code 是 j
),其中 j
不是只有 2 ~ 8 而已,像是 143 就會被你判斷是質數,但 143 = 11 x 13 是合數。