#include<stdio.h>
#include<math.h>
int?main()
{
int?i,j,m,n,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=int(sqrt(i));
for(j=2;j<k;j++)
if(i%j==0)?break;
if(j>k)?printf("%d\n",i);
else?break;
}
return?0;
}
4 回答

葛zc
TA貢獻3條經(jīng)驗 獲得超2個贊
? ? ? ??if(j>k)?printf("%d\n",i);
????????else?break;?
這代碼的意思是如果i是素數(shù),輸出i,不是的話跳出for(i=1;i<=n;i++)這循環(huán)所以錯了,應(yīng)該去掉?else?break;?

慕少1414285
TA貢獻4條經(jīng)驗 獲得超0個贊
#include<stdio.h>
#include<math.h>
int prime(int x){
int i;
for(i=2;i<=(int)sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
void main(){
int n,i,j;
printf("n=");
scanf("%d",&n);
printf("小于等于%d的素數(shù)\n",n);
if(n>2){
printf("%4d",2);
j++;
}
for(i=3;i<=n;i+=2)
if(prime(i)==1){
printf("%4d",i);
if(j!=0 && ++j%10==0)
printf("\n");
}
printf("\n");
}

慕尼黑1170528
TA貢獻10條經(jīng)驗 獲得超2個贊
#include<stdio.h> #include<math.h> int?main() { ????int?i,j,m,n,k; ????int?flag; ????scanf("%d",&n); ????for(i=2;i<=n;i++) ????{ ????????flag?=?1; ????????k=int(sqrt(i)); ????????for(j=2;j<=k;j++)?{ ????????????if(i%j==0)?{ ????????????????flag?=?0; ????????????????break; ????????????} ????????} ????????if?(flag)?{ ????????????printf("%d\n",?i); ????????} ????} ????return?0; }
你都沒有想明白你的邏輯怎么來的
- 4 回答
- 0 關(guān)注
- 2627 瀏覽
添加回答
舉報
0/150
提交
取消