1樓:匿名使用者
var n,s,i,p,x,ans:longint;
k:qword;
a:array[1..5000000] of longint;
procedure init;
var i:longint;
begin
read(n,k);
for i:=1 to n do
read(a[i]);
ans:=0;
end;
function ok(x:longint):boolean;
var i:longint;
begin
ok:=true;
for i:=2 to trunc(sqrt(x))doif x mod i=0 then
begin
ok:=false;
break;
end;
end;
procedure run(s,i,p:longint);
var j:longint;
begin
if p=k+1 then
begin
if ok(s)then
inc(ans);
exit;
end;
for j:=i+1 to n do
run(s+a[j],j,p+1);
end;
begin
init;
run(s,i,p);
writeln(ans);
end.
2樓:匿名使用者
你把你要的輸入輸出要求說一下
pascal程式:選數
3樓:匿名使用者
型別:搜尋
題解:本題動態規劃無從下手,也無數學公式可尋,看來只能搜尋(組合的生成演算法),其實1<=n<=20這個約束條件也暗示我們本題搜尋是有希望的,組合的生成可用簡單的dfs來實現,既搜尋這k個整數在原數列中的位置,由於組合不同於排列,與這k個數的排列順序無關,所以我們可以令a[i]1)是否為素數最簡單的方法就是看是否存在乙個素數a(a<=sqrt(p))是p的約數,如果不存在,該數就為素數,由於在此題中1<=xi<=5000000,n<=20,所以要判斷的數p不會超過100000000,sqrt(p)<=10000,因此,為了加快速度,我們可以用篩選法將2…10000之間的素數儲存到乙個陣列裡(共1229個),這樣速度估計將提高5~6倍。
特別注意:本題是要求使和為素數的情況有多少種,並不是求有多少種素數,比賽時就有很多同學胡亂判重而丟了12分;還有1不是素數,在判素數時要對1做特殊處理。
標程:pascal
program c2;
const
maxn = 20;
varn, m, i: byte;
ans, s: longint;
x: array[1 .. maxn] of longint;
f: array[1 .. 10000] of byte;
p: array[1 .. 1229] of integer;
procedure get_prime;
vari, j, s: integer;
begin
s := 0;
f[1] := 0;
for i := 2 to 10000 do f[i] := 1;
for i := 2 to 10000 doif f[i] = 1 then
begin
inc(s); p[s] := i;
j := 2 * i;
while j <= 10000 do begin f[j] := 0; inc(j, i) end;
endend;
procedure work(s: longint);
vari: integer;
begin
if s <= 10000 then inc(ans, f[s])else
begin
i := 1;
while sqr(longint(p[i])) <= s dobegin
if s mod p[i] = 0 then exit;
inc(i)
end;
inc(ans)
endend;
procedure search(d, pre: byte);
vari: byte;
begin
for i := pre + 1 to n - (m - d) dobegin
inc(s, x[i]);
if d = m then work(s)else search(d + 1, i);
dec(s, x[i])
endend;
begin
readln(n, m);
for i := 1 to n do read(x[i]);
ans := 0; s := 0;
get_prime;
search(1, 0);
writeln(ans)
end.
乙個神牛的題解.......
pascal數的統計
4樓:匿名使用者
var:a,b,c:longint;
s:string;
begin
readln(a);
c:=0;
for b:=9 to a do beginstr(b,s);
if pos('0',s)<>0 then c:=c+1;
end;
writeln(c);
end.
//空行為讀寫檔案留
5樓:
如果說問有多少個0反而還會做..問多少個數有0反而不會做了t t..
看看有沒有高人
不行就只能像樓上那樣暴力拿70了...
PASCAL問題,Pascal問題
歷年noip。找源程式太容易了吧 pascal問題 第五題 program lsh5 vara,b,n,x,p integer t array 1.100 ofinteger begin readln n fora 1ton div2 1 dobegin x 0 p a forb a 1ton di...
pascal問題,pascal問題
這是第一題 var i,j,a,n,s,t longint begin readln a,n for i 1 to n do begin s 0 for j 0 to i 1 do begin inc s,a round exp j ln 10 end inc t,s end writeln t r...
pascal題目非常數,求程式,pascal題目非常數,求程式
var n,i longint function sum k longint longint var i,s longint begin s 0 i 2 while k 1 do begin while k mod i 0 do begin s s i k k div i end inc i end...