我该怎么做错误:当前上下文中不存在名称“i”

时间:2015-04-16 11:08:36

标签: c# visual-studio visual-studio-2013

我正在尝试在Visual Studio中编写加密程序,但每次运行时都会出现此错误

  

当前上下文中不存在名称“i”。

这是我使用的代码:

namespace RSA
{
class RSA
{
    public static bool IsPrime(int number)
    {
        if (number < 2) return false;//daca numarul este mai mic ca 2 returneaza false
        if (number % 2 == 0) return (number == 2);//daca numarul este par va returna numarul fiind egal cu doi
        int root = (int)Math.Sqrt((Double)number);//variabila root care rotunjeste patratul numarului
        for(i = 3; i <= root; i += 2)//de la i=3 pana la variabila root din doi in doi
        {
            if (number % i == 0)//daca numarul  mod i este zero
                return false;//returneaza false
        }
        return true;//daca totul este bine returneaza true
    }

    public static long Square(long a)//patratul numarului a 
    {
        return (a * a);//returneaza patratul numarului
    }

    public static long BigMod(int b ,int p,int m)//variabila b la puterea p impartit(mod) m
    {
        if (p == 0)//daca puterea este 0
            return 1;//se retrurneaza 1 
        else//altfel
            if (p % 2 == 0)//daca este 0
                return Square(BigMod(b, p / 2, m)) % m;//se efectueaza partatul finctiei bigmod
            else//altfel
                return ((b % m) * BigMod(b, p - 1, m)) % m;//se efectueaza aceasta functie
    }

    public static int n_value(int prim1,int prim2)//se dau doua numere prime 
    {
        return (prim1*prim2);//se returneaza primul numar prim inmultit cu al doilea numar prim
    }

    public static int phi(int prim1 , int prim2)//se dau doua numere prime
    {
        return ((prim1-1)*(prim2-1));//se returneaza primul numar prim minus 1 inmultit cu al doilea numar prim minus 1
    }   

    public static Int32 PrivateKey(int phi,int E,int N)
    {
        int D=0;
        int res=0;
        for (D = 0; ;D++)
        {
            res = (D * E) % phi;
            if(res == 1)
                break;
        }
    }
}
}

1 个答案:

答案 0 :(得分:5)

for(i = 3; i <= root; i += 2)

应该是

for(int i = 3; i <= root; i += 2)

您必须在使用之前初始化变量i