Trang chủ Tin Học Lớp 8 Số nguyên tố là số chỉ chia hết cho 1...

Số nguyên tố là số chỉ chia hết cho 1 và chính nó. Trong một buổi dã ngoại của trường, bất ngờ TMB bị thầy giáo đố một câu như sau: "Một số có dạng p^q là lũy

Câu hỏi :

Số nguyên tố là số chỉ chia hết cho 1 và chính nó. Trong một buổi dã ngoại của trường, bất ngờ TMB bị thầy giáo đố một câu như sau: "Một số có dạng p^q là lũy thừa cao của một số nguyên tố khi và chỉ khi p là một số nguyên tố và q>1 . Thầy sẽ cho em một số N bất kỳ và em hãy cho biết đó có phải là lũy thừa cao của một số nguyên tố hay không? ". Không phải lúc nào cũng mang theo máy tính bên mình, đây là lúc TMB cần bạn. Yêu cầu: Cho số N, hãy giúp TMB trả lời câu đố của thầy giáo, nếu N là lũy thừa cao của một số nguyên tố thì in ra số P và Q tương ứng, nếu không thì ghi LAMF BANG PASCAL AJ

image

Lời giải 1 :

uses crt;
var i,j,n,k,j2:longint; 

t:int64;

function kt(n:longint):boolean;
var i,s:longint;
begin
s:=0;
for i:=1 to n do
 if n mod i=0 then s:=s+1;
if s=2 then kt:=true else kt:=false;
end;

begin
clrscr;
write('nhap so can kt:');readln(n);
for i:=1 to n-1 do
if kt(i) then
begin
 for j:=1 to i do
 begin
 t:=1;
 for j2:=1 to j do
  t:=t*i;
if t=n then begin write(i,' ',j2);k:=1;break;end;
end;
if k=1 then break;
end;
if k=0 then write('0');
readln;
end.


Thảo luận

-- https://oj.vnoi.info/problem/c11prime
-- hơ hơ đề ko ghi 10^8 nên ko biết :<
-- Làm thế này AC thế nào đc? Giới hạn tận 10 18 mà thời gian có khoảng 0.38s à -> chạy trong 0.1s mà :V
-- Code này chạy đến `10^4` là tịt ròi
-- :)) tại số nó to quá :V
-- nếu đổi thành int64 thì cũng chịu :<
-- Nghĩ ra cách làm rồi mà toàn quá TG :)
-- :))

Lời giải 2 :

uses crt;
var n,i,j,kt:qword; s:extended;
function NT(a:longint):boolean;
var i,dem:longint;
        begin
         dem:=0;
         for i:=1 to a do if(a mod i=0)then inc(dem);
         NT:=dem=2;
        end;
begin
 clrscr;
  readln(n);
  i:=0;
  kt:=0;
  repeat
   inc(i);
   if(NT(i))then
        begin
         j:=0;
         repeat
          inc(j);
          s:=round(exp(j*ln(j)));
          if(s=n)then kt:=1;
         until(j=i)or(kt=1);
        end;
  until(i=n)or(kt=1);
  if(kt=1)then write(i,' ',j)else write('0');
 readln;
end.

image

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK