永发信息网

pascal编程求1-10000之间所有质因数的各位数字之和和等于该数各位数字只和的数字

答案:2  悬赏:70  手机版
解决时间 2021-03-21 06:04
例如 34的质因数是2、17,质因数各位数字之和是2+1+7=10,而34的各位数字之和是3+4=7,不符合条件。最好用函数或者过程完成。
最佳答案
1. var 

2.   i,n,s:longint;
3.   c:array[1..10000] of longint;
4.

5. function sum(p:longint):longint;
6. var
7.   i:longint;
8.

9. begin
10.   repeat
11.      i:=i+p mod 10;
12.     p:=p div 10;
13.   until p=0;
14.   exit(i);

15. end;
16.

17. function sumprime(p:longint):longint);
18. var
19.   i,t:longint;
20.

21. begin
22.   t:=0;

23.   for i:=1 to s do
24.      while p mod c[i]=0 do
25.          begin
26.              p:=p div c[i];
27.              t:=t+sum(c[i]);

28.          end;

29. end;
30.

31. procedure prime;
32. var
33.   i:longint;
34.   f:boolean;
35.

36. begin
37.   q:=0;

38.   for i:=2 to 10000 do
39.     begin
40.       f:=true;

41.       for j:=2 to trunc(sqrt(i)) do
42.         if i mod j=0 then
43.           begin
44.               f:=false;
45.               break;
46.            end;
47.       if f then
48.         begin
49.             inc(q);
50.             c[q]:=i;

51.         end;

52.     end;
53.   s:=q;

54. end;
55.

56. begin
57.   prime;

58.   for i:=1 to 10000 do
59.     if sumprime(i)=sum(i) then
60.        writeln(i);
61. end.
62. 没试过不知道对不对。直接打的。自己试试看吧。。不对的话改改
全部回答
1. var  2.   i,n,s:longint; 3.   c:array[1..10000] of longint; 4. 5. function sum(p:longint):longint; 6. var 7.   i:longint; 8. 9. begin 10.   repeat 11.      i:=i+p mod 10; 12.     p:=p div 10; 13.   until p=0; 14.   exit(i); 15. end; 16. 17. function sumprime(p:longint):longint); 18. var 19.   i,t:longint; 20. 21. begin 22.   t:=0; 23.   for i:=1 to s do 24.      while p mod c[i]=0 do 25.          begin 26.              p:=p div c[i]; 27.              t:=t+sum(c[i]); 28.          end; 29. end; 30. 31. procedure prime; 32. var 33.   i:longint; 34.   f:boolean; 35. 36. begin 37.   q:=0; 38.   for i:=2 to 10000 do 39.     begin 40.       f:=true; 41.       for j:=2 to trunc(sqrt(i)) do 42.         if i mod j=0 then 43.           begin 44.               f:=false; 45.               break; 46.            end; 47.       if f then 48.         begin 49.             inc(q); 50.             c[q]:=i; 51.         end; 52.     end; 53.   s:=q; 54. end; 55. 56. begin 57.   prime; 58.   for i:=1 to 10000 do 59.     if sumprime(i)=sum(i) then 60.        writeln(i); 61. end. 62. 没试过不知道对不对。直接打的。自己试试看吧。。不对的话改改
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
浙江财经学院和杭州师范大学近吗 下沙那
iPhone8国行和港版买哪个好
香满园餐馆在什么地方啊,我要过去处理事情
英语单词默写软件有没有!!!多说几个
单选题钾、钠各0.5g分别与足量的水完全反应后
付临门pos机安全吗 付临门pos怎么样
开发商应退定金吗,政策原因不能买房
报考小学美术教师资格证,该买什么复习资料,
榴莲壳煲汤榴莲能吃吗
旺雀麻将机怎么去啊,有知道地址的么
办理台湾自由行行签注需预约吗?
长城m4副气囊怎么拆
跪求网王同人文【NP滴】女主要很强很强,最好
怎么在淘宝注册店铺
百色丽人服装饰品店地址在什么地方,想过去办
推荐资讯
摄影专业人士有没有用持续光源的,而不是影室
满洲里市公安局扎赉诺尔连营派出所我想知道这
怎么把自己用3Dmax做的模型导入到电脑游戏里
海龙路这个地址在什么地方,我要处理点事
什么叫半衰期
左腿膝盖内侧疼是怎么回事
奋斗女人励志语录,女人励志的话 致自己
总是在清晨5点-6点,莫名其妙醒来.
进行投资理财,投资资金需要一定的数量才有意
废纸如何再利用,废纸怎样再利用,能做成什么
埭字怎么读
我很少上学迟到用英语怎么说?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?