啊哈磊_编程从这里起步
标题:
不知道哪里错了
[打印本页]
作者:
hcl109080
时间:
2014-4-24 17:51
标题:
不知道哪里错了
相差为2的两个质数称为孪生质数。例如3和5是一对孪生质数,41和43也是一对孪生质数。那么100~200之间共有多少对孪生质数呢?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d,i,t,sum=0;
for(a=100;a<=200;a++)
{
for(i=2;i<=a;i++)
{
if(a%i==0)
break;
}
if(i==a)
{
b=a+2;
for(t=2;t<b;t++)
{
if(b%t==0)
break;
else
sum=sum+1;
}
}
}
printf("%d",sum);
system("pause");
return 0;
}
作者:
rosynirvana
时间:
2014-4-24 20:44
for(t=2;t<b;t++) {
if(b%t==0)
break;
else
sum=sum+1;
}
你要做的是,如果b是一个质数,那么sum = sum + 1;
b是不是质数要在循环结束后才能确定,sum = sum + 1; 肯定是写在循环外面的
所以应该是
for(t=2;t<b;t++) {
if(b%t==0)
break;
}
if(t >= b)
sum += 1;
这样能得到正确答案,但是做法仍然不正确
for(a=100;a<=200;a++) 应该是 a + 2 <= 200
不然会检验199和201这一组,如果这两个都是质数,那么就会多一组
索性不是,才能得到正确答案
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2