Armstron 숫자 (숫자가 큐브와 같은 숫자입니다, 예 : 153)가 있는지 확인할 수있는 프로그램을 만들고 싶습니다.숫자가 파스칼 단위로 반복되는지 어떻게 확인합니까?
도 숫자가 완벽합니다. 예를 들어 28 (1 + 2 + 4 + 7 + 14)와 같이 제수의 합계에 해당하는 숫자는 이고 1000 이하입니다. 번호는 암스트롱 번호이며 완벽한 번호인지 확인하십시오.
program Armstrong;
var i,n,j,d,s,p:integer;
begin
for i:=1 to 1000 do
begin
j:=i mod 10;
d:=i div 10 mod 10;
s:=i div 100;
n:=j*j*j+d*d*d+s*s*s;
if n=i then
writeln(i);
end;
end.
는 완벽한 숫자는 그래서 내가 그들을 병합 내가 처음 프로그램에서 얻을 숫자뿐만 아니라 두 번째에 나타납니다 있는지 확인하는 방법을 모르는
program Perfect;
var n,s,i:integer;
begin
for n:=1 to 1000 do
begin
s:=0;
for i:=1 to n do
begin
if n mod i = 0 then
s:=s+i;
end;
if s=n then
writeln(n);
end;
end.
입니다.
내가 정확히 이해하지 못하는 당신 질문에 대해서는 Perfect에 대해 '부울 함수'를 수행하고 Armstrong에 대해 '부울 함수'를 수행하고 둘 다 검증 할 수 있습니다. 또 다른 방법은'array'에 첫 번째를 모두 저장하고 두 번째에 대해 동일하게 저장 한 다음'intersection'을 만드는 것입니다. –