配列内の桁の素数の合計で素数を出力します
要素の配列で与えられ、タスクは、桁の合計も素数であり、戻り値-1が配列に存在する桁ではない数値を出力することです
Input: arr[]={2,4,3,19,25,6,11,12,18,7} Output : 2, 3, 25, 11, 12, 7
ここで、与えられた出力は、合計が-2、3、7のように素数であるが、25(2 + 5 =7)、11(1 + 1 =2)、12(1+ 2 =3)も素数ですが、19(1 + 9 =10)のような数は素数ではありません。
アルゴリズム
START Step 1 -> Take array of int with values Step 2 -> declare start variables as i, m, flag, flag1, sum, r, d, j, tem Step 3 -> store size of array in m as sizeof(arr)/sizeof(arr[0]) Step 4 -> Loop For i=1 and i<m and i++ Set flag=flag1=sum=0 Set d=int(arr[i]/2 Loop For j=2 and j<=d and j++ IF arr[i]%j==0 Set flag=1 Break End IF End IF flag=0 Set tem=arr[i] Loop While tem Set r=tem%10 Set sum=sum+r Set tem=tem/10 End Set d=int(sum/2) Loop For j=2 and j<=d and j++ IF sum%j=0 Set flag1=1 break End End IF flag1=0 Print arr[i] End End End STOP
例
#include<iostream> using namespace std; int main(){ int arr[]={2,4,3,19,25,6,11,12,18,7}; int i,m,flag,flag1,sum,r,d,j,tem; m=sizeof(arr)/sizeof(arr[0]); for(i=0;i<m;i++) { flag=flag1=sum=0; d=int(arr[i]/2); for(j=2;j<=d;j++){ if(arr[i]%j==0) { flag=1; break; } } if(flag==0) { tem=arr[i]; while(tem) { r=tem%10; sum=sum+r; tem=tem/10; } d=int(sum/2); for(j=2;j<=d;j++) { if(sum%j==0){ flag1=1; break; } } if(flag1==0){ cout<<arr[i]<<" "; } } } }
出力
上記のプログラムを実行すると、次の出力が生成されます
2 3 11 25 12 7
-
C++で合計Nを使用して連続する数値の可能なすべての合計を出力します
この問題では、正の整数Nが与えられ、合計がNに等しいすべての可能な連続数のシーケンスを出力する必要があります。 問題を理解するために例を見てみましょう Input: N = 15 Output: 1 2 3 4 5 7 8 この問題の簡単な解決策は、N/2までの連続したシーケンスの組み合わせを合計することです。次に、合計がNになるシーケンスを出力します。 例 #include<iostream> using namespace std; void printConsequtiveSum(int N){ int start = 1, end = (N+1
-
Pythonでナルシシスト(アームストロング)数を印刷する方法は?
ナルシシスト数を印刷するには、まずその定義を見てみましょう。これは、それぞれが桁数の累乗で累乗された独自の桁の合計である数値です。たとえば、1、153、370はすべてナルシシスト数です。次のコードを実行すると、これらの番号を印刷できます def print_narcissistic_nums(start, end): for i in range(start, end + 1): # Get the digits from the number in a list: digits = list(map(int, str(i)))