PDA

View Full Version : Bài toán đếm số nguyên tố đối xứng trong một dãy



stoneet
10-01-2012, 22:13
Số là có người nhờ mình làm bài toán đếm số nguyên tố đối xứng trong dãy số từ a đến b với a<b. Mà khổ nỗi mình là tay ngang, mới nghe đến khái niệm số nguyên tố đối xứng lần đầu ah.

Google thì ra khái niệm số nguyên tố đối xứng thế này:
Số nguyên tố đối xứng là một số nguyên tố bằng trung bình cộng của 2 số nguyên tố liền trước và liền sau nó. VD: 5 là số nguyên tố đối xứng vì 5 = (3 + 7)/2.

Các cao thủ có thể giúp mình giải bài toán trên không ah. Mình vô cùng cảm ơn, hik hik

auauau97
20-01-2012, 17:52
bạn thử code này xem:


Uses crt;
Const
max=11111;
{--------------------------------------------}
Function NT(n:longint):boolean;
Var
i:longint;
Begin
NT:=True;
For i:=2 to trunc(sqrt(n)) do
If n mod i=0 then
Begin
NT:=False;
Exit;
End;
End;
{--------------------------------------------}
Var
a:array[1..max] of longint;
a1,b1,i,n:longint;
BEGIN
Clrscr;
Repeat
Write('Nhap 2 so a,b:');
Readln(a1,b1);
Until a1<b1;
n:=0;
For i:=1 to max do
If NT(i) then
Begin
n:=n+1;
a[n]:=i;
End;
For i:=1 to n do
If (a[i]=(a[i-1]+a[i+1])/2) and ((a1<=a[i]) and (b1=>a[i])) then
Write(a[i],' ');
Readln;
END.
mình đã tạo 1 mảng các số nguyên tố từ 1 tới max rùi cho for kiểm tra xem phần tử a[i] có thỏa mã điều kiện của đề bài không : =(a[i-1]+a[i+1])/2 và nằm trong khoảng từ a đến b thì in ra !!!