1169: 例題5-9 判斷素數
題目描述
輸入一個大於1的正整數,判斷它是否爲素數(prime,又稱質數)。
如果這個數是素數,則輸出yes,否則輸出no。
末尾輸出換行。
輸入
一個大於1的正整數
輸出
根據輸入數據,判斷概述是否爲素數。如果這個數是素數,則輸出yes,否則輸出no。
注意末尾輸出換行。
樣例輸入 Copy
7
樣例輸出 Copy
yes
#include<stdio.h>
#include<math.h>
int main()
{
int a,b;
for(a=100;a<=200;a++)
{
for(b=2;b<a;b++)
if(a%b==0)
break;
if(b>sqrt(a))
{
printf("%d\n",a);
}
}
}
1171: 例題5-11 譯密碼
題目描述
爲使電文保密,往往按照一定的規律將其轉換成密碼,收報人再按照約定的規律將其譯成原文。例如,某次發報時採用的密碼規律爲:
將字母A變成字母E,a變成e,即變成其後的第4個字母,W(w)變成A(a),X(x)變成B(b), Y(y)變成C(c),Z(z)變成D(d),其規律如下圖所示:
字母按照此規律轉換,非字母字符保持原狀不變,如:
China!按此規律將轉換爲Glmre!
要求從鍵盤輸入一行字符,輸出其相應的密碼。
輸入
可以包含空格等特殊符號的一行字符(以回車結束)。
輸出
加密後的字符序列,末尾輸出換行。
樣例輸入 Copy
China!
樣例輸出 Copy
Glmre!
#include<stdio.h>
int main()
{
char c[200];
int i;
gets(c);
for(i=0;c[i]!=0;i++)
{
if(c[i]>='A'&&c[i]<'W'||(c[i]>='a'&&c[i]<'w'))
{c[i]+=4;}
if((c[i]>='W'&&c[i]<='Z')||(c[i]>='w'&&c[i]<='z'))
{c[i]-=26;}
}
puts(c);
getchar();
}
1172-1173: 習題5-3-1 求最大公約數
輸入
輸入以空格分隔的2個正整數
輸出
輸出輸入2數的最大公約數,末尾輸出換行。
樣例輸入 Copy
14 49
樣例輸出 Copy
7
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
for(c=(a<b?a:b);c>1;c--)
if(a%c==0&&b%c==0)
{printf("%d\n",c);break;}
}
1174-1175: 習題5-3-3 最小公倍數
題目描述
輸入兩個正整數,求其最小公倍數。
輸入
輸入以空格分隔的兩個正整數。
輸出
輸出此兩數的最小公倍數,末尾輸出換行。
樣例輸入 Copy
14 24
樣例輸出 Copy
168
#include<stdio.h>
int main()
{
int a,b,i;
scanf("%d%d",&a,&b);
for(i=2;i<=a*b;i++)
if(i%a==0&&i%b==0)break;
printf("%d\n",i);
return 0;
}
1176: 習題5-4 字符統計
題目描述
輸入一行字符,分別統計其中英文字母、空格、數字和其他字符的個數,分行輸出該結果。
輸入
一行字符,可以包含字母、數字、空格、標點等符號
輸出
分行輸出大小寫英文字母、空格、數字和其他字符的個數。
如:
characters=字母個數
spaces=空格個數
numbers=數字個數
others=其他字符個數
樣例輸入 Copy
My input123 @%chars.
樣例輸出 Copy
characters=12
spaces=2
numbers=3
others=3
#include<stdio.h>
int main()
{
int zimu=0,kengge=0,num=0,others=0;
char ch;
while((ch=getchar())!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
zimu++;
else
if(ch>='0'&&ch<='9')
num++;
else
if(ch==' ')
kengge++;
else
others++;
}
printf("characters=%d\nspaces=%d\nnumbers=%d\nothers=%d\n",zimu,kengge,num,others);
}
1177: 習題5-5 求和
題目描述
求a+aa+aaa+...+aa....a(n個a)的和,其中a是一個1~9之間的數字,由鍵盤輸出,n表示a的位數,由鍵盤輸出。
如:
2+22+222+2222+22222
此時a=2,n=5.
輸入
輸出a和n的值,以空格分隔。
輸出
輸出a+aa+aaa+...+aa....a(n個a)的和,末尾換行。
樣例輸入 Copy
2 5
樣例輸出 Copy
24690
#include<stdio.h>
int main()
{
double a,i,j,s,n;
scanf("%lf%lf",&a,&n);
for(i=1,j=1,s=0;n-i>=0;i++,j=j*10+1)
{
s+=j;
} s*=a;
printf("%.0lf\n",s);
}
1179: 習題5-6-1 連續階乘求和
題目描述
輸入一個正整數N,求1!+2!+3!+...+N!,即求
提示:由於>10的整數的階乘非常大,已超出整數的表示範圍,故求階乘時,需要將變量定義爲double類型。
輸入
輸入一個正整數N
輸出
1~N連續階乘的和,1!+2!+3!+...+N!的和,末尾換行。
樣例輸入 Copy
10
樣例輸出 Copy
4037913
#include<stdio.h>
int main()
{
double n,i,t=1,s=0.0;
scanf("%lf",&n);
for(i=1;i<=n;i++)
{
t*=i;
s+=t;
}
printf("%.0lf",s);
return 0;
}