2013信息奥赛第十三次课(循环四)

Download Report

Transcript 2013信息奥赛第十三次课(循环四)

1026: 【入门】求满足条件的整数个数
在1-n中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整
数的个数,如果没有请输出0。
输入一行,只有一个整数n(1<=n<=2000)
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
样例输入
10
样例输出
0
穷举的思路
从1到n
循环变量i
范围
for i:=1 to n do
1026: 【入门】求满足条件的整数个数
在1-n中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数的个
数,如果没有请输出0。
输入一行,只有一个整数n(1<=n<=2000)
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
样例输入
10
样例输出
0
program ex1026;
var i,n,s:integer;
begin
readln(n);
s:=0;
for i:=1 to n do
if (i mod 3=2) and (i mod 5=3) and (i mod 7=2) then inc(s);
writeln(s);
end.
1032: 【入门】编程求阿姆斯特朗数
阿姆斯特朗数:如果一个三位正整数等于其各个数字的
立方和,则该数称为阿姆斯特朗数,如407=4^3+
7^3+0^3,试编程求出N以内的所有阿姆斯特朗数的个数。
(100<=N<=999)
输入
输入一行,只有一个整数N
输出
输出只有一行(这意味着末尾有一个回车符号),包括1个整
数。
样例输入
999
100--999
穷举
样例输出
4
循环体要做的事情
拆---判断
1037: 【入门】判断素数
题目描述
任意输入一个整数,判断它是否为素数。是的话输出"T",不是的
话输出"F".
输入只有一行,包括1个整数(在长整型范围内)。
输出只有一行.
样例输入
57
样例输出
8
15
F
for i:=2 to n-1 do
if n mod i=0 then writeln(‘F’) else writeln(‘T’);
猜一猜我是否是素数?
n
先假设你是 pd:=true
9
2
3
4
……
N-1
素数得通过所有的
测试
一旦测试过程中发现有约束就立刻pd:=false 同时结束循环
长整型范围内
longint
-2147483648..2147483647
program ex1037;
var n,i:longint;
pd:boolean;
begin
readln(n);
pd:=true;
for i:=2 to n-1 do
8
if n mod i=0 then
10
begin
pd:=false;
break;
end;
if n=1 then pd:=false;
if pd=true then writeln('t') else writeln('f');
end.
36
2
18
3
12
4
9
trunc(sqrt(n))
长整型范围内
longint
-2147483648..2147483647
program ex1037;
var n,i:longint;
pd:boolean;
begin
readln(n);
pd:=true;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then
begin
pd:=false;
break;
end;
if n=1 then pd:=false;
if pd=true then writeln('t') else writeln('f');
end.
continue
1035: 【入门】素数的个数
题目描述
编程求正整数M与N之间的所有素数的个数.(M<=N)
输入只有一行,包括2个整数M,N,之间用一个空格分开。
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
样例输入
1 20
样例输出
8
思考