#include<stdio.h>
int main(){
int a;
int cnt=-2;
int n[100]={0};
while(~scanf("%d",&a)){
for(int i=2;i<=a;i++){
n[i]=i;
}
for(int j=2;j<=a;j++){
for(int k=2;k<j;k++){
if(n[j]%k==0){
n[j]=0;
}
}
}
}
for(int i=0;i<=a;i++){
if(n[i]==0){
cnt++;
continue;
}
else {
printf("%d ",n[i]);
}
}
printf("\n");
printf("%d\n",cnt);
return 0;
}
uj5u.com熱心網友回復:
供參考:#include<stdio.h>
int main(){
int a;
int cnt=-2;
int n[100]={0};
while(~scanf("%d",&a)){ //Ctrl+Z 結束輸入
for(int i=2;i<=a;i++){
n[i]=i;
}
for(int j=2;j<=a;j++){
for(int k=2;k<j;k++){
if(n[j]%k==0){
n[j]=0;
}
}
}
}
for(int i=0;i<=a;i++){
if(n[i]==0){
cnt++;
continue;
}
else {
printf("%d ",n[i]);
}
}
printf("\n");
printf("%d\n",cnt);
return 0;
}
//~是按位取反
//scanf的回傳值是輸入值的個數
//如果沒有輸入值就是回傳-1
//while(~scanf("%d", &n))就是當沒有輸入的時候退出回圈
//和while(scanf("%d",&n)!=EOF)一個意思
//知識1:只有-1取反(~-1)是0
//知識2:scanf讀入到EOF時回傳-1
//注:一般這種用法在oj(確保資料正確)上使用,平常基本用不到
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274899.html
標籤:C語言
下一篇:求改一下
