输入格式:
输入正整数A和B,空格分隔。
输出格式:
输出两数间素数的个数(不包括这两个数)。如果输入负数没有输出。
输入样例:
在这里给出一组输入。例如:
10 20
输出样例:
在这里给出相应的输出。例如:
4
输出结果是0,不知道为什么
应该是代码逻辑错误,如那里第二个for循环的终止条件要改为小于i,然后判断是否为素数的逻辑也要改一下,修改了一下如下:
#include <stdio.h>
int main(void){
int a,b,c,i,j,t,prime=1;
int sum=0,count=0;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++){
for(j=2;j<i;j++){
t=i%j;
if(t==0){
// printf("i=%d,j=%d,count=%d\n",i,j,count);
prime=0;
break;
}
}
if(prime==1){
count++;
}
prime=1;
}
printf("%d",count);
return 0;
}
1.j < b 改成 j< a
2.if(sum==2)改成 (sum == a)
供参考:
#include<stdio.h>
int main() {
int a, b, c, d = 0, i, e;
printf("请输入两个数字(a和b):");
scanf("%d%d", &a, &b);
if (a > 0 && b > 0)
{
for (i = a+1; i < b; i++) {
c = 2;
while (c < i) {
e = i % c;
if (e == 0) break;
c++;
}
if (c == i && i != 1) d++;
}
printf("%d", d);
}
return 0;
}