oracle - PLSQL(查找素数到 1000 的范围)
问题描述
DECLARE
n NUMBER;<br>i NUMBER;
pr NUMBER;
BEGIN
FOR n IN 2 .. 1000 LOOP
pr := 1;
FOR i IN 2 .. n / 2 LOOP
IF MOD(n, i) = 0 THEN
pr := 0;
END IF;
END LOOP;
IF (N = 997) THEN
DBMS_OUTPUT.PUT(n);
pr:=2;
ELSE
IF pr = 1 THEN
DBMS_OUTPUT.PUT(n||'&');
END IF;
END if;
END LOOP;
dbms_output.new_line;
END;
输出应该是一行---->
2&3&5&7&11&13&17&19&23&29&31&37&41&43&47&53&59&61&67&71&73&79&83&89&97&101&103&107&109&113&127&131&137&139&149&151&157&163&167&173&179&181&191&193&197&199&211&223&227&229&233&239&241&251&257&263&269&271&277&281&283&293&307&311&313&317&331&337&347&349&353&359&367&373&379&383&389&397&401&409&419&421&431&433&439&443&449&457&461&463&467&479&487&491&499&503&509&521&523&541&547&557&563&569&571&577&587&593&599&601&607&613&617&619&631&641&643&647&653&659&661&673&677&683&691&701&709&719&727&733&739&743&751&757&761&769&773&787&797&809&811&821&823&827&829&839&853&857&859&863&877&881&883&887&907&911&919&929&937&941&947&953&967&971&977&983&991&997967&971&977&983&991&997967&971&977&983&991&997但不适用于hackerrank编译器问题是“打印素数”
解决方案
您的代码生成所需的字符串没有问题,除了 <br>i NUMBER;
只需在声明部分中注释掉该部分,如下所示:
DECLARE
n NUMBER; -- <br>i NUMBER;
pr NUMBER;
这是一个演示。
推荐阅读
- java - 使用条件通过休眠注释将最新记录映射到对象类
- ibm-cloud - Watson Assistant Chatbot 将用户输入保存在 Slots 中
- c++ - 如何将向量插入到特定位置的另一个向量中,以便我将获得两者的大向量并且该位置将被覆盖?
- c++ - 如何检查函数是否在 C++ 类中实际定义
- flutter - 带有 PageView 的 Flutter 底部导航栏
- php - 在 MySQL 中创建函数时出现错误 #1064
- angular - 角度加载页面
- php - Eloquent 将 MSSQL 数据作为字符串返回,而不是它们各自的数据类型
- python - 如何根据python中的给定数字创建多个字典?
- c# - 全局 XAML 构造