c++ for的循环语法 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y) 我不知道我为什么错了!!!

我输入1 100 但是输出是0!!!!!
#include <iostream>
using namespace std;

int main()
{
int x,y,data,ans=0;
cin>>x>>y;
{
int temp=x;
x=y;
y=temp;
}
for(int i =x;i<=y;i++)
{
int data=i;
bool flag = true;
for(int j=2;j<=data/2;j++)
{
if(data % j==0)
{
flag=false;
break;
}
}
if(flag)
{
ans ++;
}
}
cout<<ans;
return 0;
}
求大神!!!!!

第8行少了个判定吧,if(x > y),不然不管你xy两个值为多少都做交换追问

我修改之后(不仅修改了你说的少个判定,还在最后一个判定里面 如右 if(flag && i!=1)) 出现了 Time Limit Exceeded !!求救

追答

#include
using namespace std;
bool isPrime(int n); //判定素数的函数
int main()
{
int x,y;
cin y) //若x大于y则做交换
{
temp = x;
x = y;
y = temp;
}
int ans;
for(int i = x; i <= y; i++)
{
if(isPrime(i))
ans++;
}
cout << "x与y之间有" << ans << "个素数.\n";
return 0;
}
bool isPrime(int n)
{
bool flat = false;
for(int j = 2; j <= n/2; j++)
{
if(n % j == 0)
flat = true;
break;
}
return flat;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c++ for的循环语法 输入两个整数X和Y,输出两者之间的素数个数(包括X和...
第8行少了个判定吧,if(x > y),不然不管你xy两个值为多少都做交换

c++ for循环 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y...
y,data,ans=0; cin>>x>>y; if(x > y){ int temp=x; x=y; y=temp;} for(int i =x;i<=y;i++) { int data=i; bool flag = true; for(int j=2;j<=sqrt(data);j++) \/\/这里修改成平方根更好,如果你...

c++输入两个素数,求介于两者之间素数的个数
if (n % i == 0) return false;} return true;} int main() { int num1, num2;int cnt = 0; \/\/ 记录素数个数 cout << "请输入两个素数,中间用空格隔开:" << endl;cin >> num1 >> num2;cout << num1 << "和" << num2 << "之间的素数有:" << endl;for (in...

c++求任意两个数之间的所有素数
} \/\/检测完了还没可以被整除的数,返回1 int main() \/\/主函数{int i,a,b; \/\/循环变量和任意两个数 printf("请输入起点:

c语言 统计输入两个数字之间素数个数并输出素数
{for(j=2;j<i;j++)if(i%j==0)break;if(i==j)c[count++]=i;\/*如果是素数,最后i==j,把素数存入数组c,且count计数*\/ } for(i=0;i<count;i++)\/*输出结果*\/ {printf("%d",c[i]);if((i+1)%5==0)printf("\\n");} printf("素数的个数%d:",count);} ...

用C++语言编写程序:输出0~n的素数?
} return true;} int main() { int n;cout "请输入一个正整数 n:";cin >> n;cout "0~" << n << "之间的素数有:";for (int i = 2; i <= n; i++) { if (isPrime(i)) { cout << i << " ";} } return 0;} ```首先,定义了一个 `isPrime` 函数,用于判断一...

用C++输出两个正整数[m,n]之间所有的素数,每行输出5个数
{ int i,j,m,n,k,h=0,leap=1;loop:printf("\\nPlease input two numbers m and n:(m>1,n>m)\\n");scanf("%d%d",&m,&n);if(m<=1||n<=m){ printf("Input error! Please input again!");goto loop;} printf("\\The prime numbers between %d and %d are:\\n",m,n);for...

输入两个正整数m和n,统计并输出m和n之间的素数的个数
include <stdio.h>int prime(int m){ int i; for(i = 2; i <= m \/ 2; i++) if(m % i == 0) return 0; return 1;}int main(void){ int i, m, n, c=0, s=0; printf("Input m:"); scanf("%d", &m); printf("Input n:"); ...

编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语 ...
printf("素数:\\n");for (a=1;a<=1000;a++){for (i=2;i<=(a-1);i++)if (a%i==0)break;if (i>=a){sum++;printf("%d\\n",a);}}printf("\\n素数的个数:%d\\n",sum);} 本回答由提问者推荐 举报| 答案纠错 | 评论(1) 12 30 myy243515205 采纳率:66% 擅长: 暂未定制 ...

输出100 200之间的素数的个数,以及所有的素数 C++
由于100~200间的素数都是奇数,所以可设置一个循环遍历其间的奇数,再考察它们是否有1和自身以外的因子,若无此因子则是素数,输出并计数,最后输出素数个数。代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include <iostream>using namespace std;int main(int argc,char...

相似回答