从一个数对列中找出素数对用于RAS加密的C++程序

#include <iostream>

#include <cmath>

using namespace std;

const int n = 10000;

int isPrime(int n);

 

int main()

{

    for(int i = 2; i < n;++ i) {//产生10000个数队列

        if(isPrime(i)) { //判断变换前的数是否为素数

            int count = 1;

            int sum = 0;

            for(int j = i;j > 1;) {//对数进行某种特定的变换

                 if(j % 2 != 0) {

                     sum = sum + count;

                 }                                                                                  

                 count = count * 2;

                  j = j / 2;

            }

             if(isPrime(sum)) {//判断变换后的数是否为素数,如果是素数,则输出

                  cout << i << "  " << sum << endl;

             }

          }

    }

        

   return 0;

}

 

int isPrime(int n) //判断一个数是否为素数的函数

{

    if(n < 2) return false;

   

    for(int i = 2; i <= sqrt(n); i++) {

        if((n % i) == 0) // 如果能被除了1和它本身的数整除,就不是素数

            return false;

    }

 

    return true; // 是素数

}

原文链接: https://www.cnblogs.com/carmine/p/12808167.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    从一个数对列中找出素数对用于RAS加密的C++程序

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/345359

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午3:12
下一篇 2023年3月2日 上午3:12

相关推荐